ECG LSTM Patch CGAN¶
Data load¶
In [ ]:
import os
import numpy as np
import torch
from torch.utils.data import Dataset, DataLoader
import wfdb # .dat 파일을 다루기 위한 라이브러리
import torch.nn as nn
import torch.nn.functional as F
from torch.utils.data.dataset import random_split
import matplotlib.pyplot as plt
class ECGDataset(Dataset):
def __init__(self, directory):
self.data = []
segment_length = 1600 # 2초 길이의 샘플 수
# 모든 환자 디렉터리 반복
for patient_num in range(1, 93):
patient_dir = os.path.join(directory, f"patient{patient_num:03d}")
seg_files = [f for f in os.listdir(patient_dir) if f.endswith('.dat')]
for seg_file in seg_files:
data_file = os.path.join(patient_dir, seg_file)
header_file = os.path.join(patient_dir, seg_file.replace('.dat', '.hea'))
num_channels, samples_per_channel, channel_names = self.parse_header(header_file)
ii_raw_index = channel_names.index('II-Raw')
ii_index = channel_names.index('II')
ecg_data = self.load_ecg_data(num_channels, samples_per_channel, data_file)
# 각 세그먼트를 2초씩 잘라서 저장
num_segments = 5
for i in range(num_segments):
start = i * segment_length
end = start + segment_length
segment_data = {
"II-Raw": ecg_data[ii_raw_index][start:end],
"II": ecg_data[ii_index][start:end]
}
# 데이터 평균을 0으로 만들기
segment_data = {key: (value - np.mean(value)) / np.std(value) for key, value in segment_data.items()}
self.data.append(segment_data)
def parse_header(self, file_path):
with open(file_path, 'r', encoding='latin1') as file:
lines = file.readlines()
num_channels = int(lines[0].split(' ')[1])
samples_per_channel = int(lines[0].split(' ')[3])
channel_names = []
for line in lines[1:num_channels+1]:
channel_info = line.split(' ')
channel_names.append(channel_info[-1].strip())
return num_channels, samples_per_channel, channel_names
def load_ecg_data(self, num_channels, samples_per_channel, data_file):
ecg_data = np.fromfile(data_file, dtype='int16')
ecg_data = ecg_data.reshape((samples_per_channel, num_channels)).T
return ecg_data
def __len__(self):
return len(self.data)
def __getitem__(self, idx):
sample = self.data[idx]
return {key: torch.tensor(value, dtype=torch.float) for key, value in sample.items()}
# 데이터셋과 데이터 로더 설정
dataset_directory = './wilson-central-terminal-ecg-database-1.0.1'
ecg_dataset = ECGDataset(dataset_directory)
In [ ]:
# 데이터셋의 전체 길이 확인
dataset_size = len(ecg_dataset)
print("데이터셋 크기:", dataset_size)
ecg1 = ecg_dataset[0]
ecg_signal_size = len(ecg1['II-Raw'])
print('신호 길이:', ecg_signal_size)
데이터셋 크기: 2700 신호 길이: 1600
In [ ]:
ecg1['II-Raw'].shape
Out[ ]:
torch.Size([1600])
In [ ]:
# 데이터셋의 길이를 구합니다.
total_size = len(ecg_dataset)
# 훈련 세트와 테스트 세트의 크기를 정합니다. 여기서는 80:20 비율을 사용합니다.
train_size = int(total_size * 0.8)
test_size = total_size - train_size
# random_split의 seed 고정
seed = torch.Generator().manual_seed(42)
# random_split을 사용하여 데이터셋을 나눕니다.
train_dataset, test_dataset = random_split(ecg_dataset, [train_size, test_size], generator=seed)
train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True)
test_loader = DataLoader(test_dataset, batch_size=16, shuffle=False)
Conditional GAN¶
In [ ]:
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f'Using device: {device}')
Using device: cuda
In [ ]:
signal_dim = 1 # 1, 1600
noised_dim = 1 # 1, 1600
class Generator(nn.Module):
def __init__(self):
super(Generator, self).__init__()
self.gen_encoder1 = nn.Conv1d(1, 8, kernel_size=5, stride=1, padding=2) # (batch, 1, 1600) -> (batch, 8, 1600)
self.gen_encoder2 = nn.Conv1d(8, 16, kernel_size=5, stride=2, padding=2) # (batch, 8, 1600) -> (batch, 16, 800)
self.gen_encoder3 = nn.Conv1d(16, 32, kernel_size=5, stride=2, padding=2) # (batch, 16, 800) -> (batch, 32, 400)
self.gen_encoder4 = nn.Conv1d(32, 64, kernel_size=5, stride=2, padding=2) # (batch, 32, 400) -> (batch, 64, 200)
self.lstm = nn.LSTM(input_size=64, hidden_size=64, num_layers=1, batch_first=True) # LSTM layer
self.dropout = nn.Dropout(0.5)
self.gen_decoder1 = nn.ConvTranspose1d(64, 32, kernel_size=5, stride=2, padding=2, output_padding=1) # (batch, 64, 200) -> (batch, 32, 400)
self.gen_decoder2 = nn.ConvTranspose1d(32, 16, kernel_size=5, stride=2, padding=2, output_padding=1) # (batch, 32, 400) -> (batch, 16, 800)
self.gen_decoder3 = nn.ConvTranspose1d(16, 8, kernel_size=5, stride=2, padding=2, output_padding=1) # (batch, 16, 800) -> (batch, 8, 1600)
self.gen_decoder4 = nn.ConvTranspose1d(8, 1, kernel_size=5, stride=1, padding=2) # (batch, 8, 1600) -> (batch, 1, 1600)
def forward(self, noised_signal):
z = F.leaky_relu(self.gen_encoder1(noised_signal), 0.2)
z = F.leaky_relu(self.gen_encoder2(z), 0.2)
z = F.leaky_relu(self.gen_encoder3(z), 0.2)
z = F.leaky_relu(self.gen_encoder4(z), 0.2)
z = z.transpose(1, 2)
z, _ = self.lstm(z)
z = z.transpose(1, 2)
z = self.dropout(z)
z = F.leaky_relu(self.gen_decoder1(z), 0.2)
z = F.leaky_relu(self.gen_decoder2(z), 0.2)
z = F.leaky_relu(self.gen_decoder3(z), 0.2)
output = self.gen_decoder4(z)
return output
class Discriminator(nn.Module):
def __init__(self, signal_dim, noised_dim):
super(Discriminator, self).__init__()
self.conv1 = nn.Conv1d(signal_dim + noised_dim, 32, kernel_size=4, stride=2, padding=1)
self.conv2 = nn.Conv1d(32, 64, kernel_size=4, stride=2, padding=1)
self.conv3 = nn.Conv1d(64, 128, kernel_size=4, stride=2, padding=1)
self.conv4 = nn.Conv1d(128, 256, kernel_size=4, stride=2, padding=1)
self.conv5 = nn.Conv1d(256, 512, kernel_size=4, stride=1, padding=1)
self.conv6 = nn.Conv1d(512, 1, kernel_size=4, stride=1, padding=1)
def forward(self, x, condition):
x = torch.cat([x, condition], dim=1) # Concatenate along the channel dimension
x = F.leaky_relu(self.conv1(x), 0.2)
x = F.leaky_relu(self.conv2(x), 0.2)
x = F.leaky_relu(self.conv3(x), 0.2)
x = F.leaky_relu(self.conv4(x), 0.2)
x = F.leaky_relu(self.conv5(x), 0.2)
x = torch.sigmoid(self.conv6(x))
return x
In [ ]:
# 하이퍼파라미터 설정
num_epochs = 200
learning_rate = 0.0001
# L1 loss 가중치
beta = 50
In [ ]:
# 모델 및 최적화 알고리즘 설정
generator = Generator().to(device)
discriminator = Discriminator(signal_dim, noised_dim).to(device)
optimizer_G = torch.optim.Adam(generator.parameters(), lr=learning_rate)
optimizer_D = torch.optim.Adam(discriminator.parameters(), lr=learning_rate)
# 손실 함수(loss function)
criterion_GAN = nn.BCELoss(reduction='mean')
criterion_pixelwise = nn.L1Loss(reduction='mean')
In [ ]:
def train(train_loader):
generator.train()
discriminator.train()
for epoch in range(num_epochs):
for i, data in enumerate(train_loader):
real = torch.ones(data['II'].shape[0], 1, 98).to(device) # PatchGAN의 경우 shape 맞추기
fake = torch.zeros(data['II'].shape[0], 1, 98).to(device) # 가짜(fake): 0
denoised_signal = data['II'].unsqueeze(1).float().to(device) # (batch, 1600) -> (batch, 1, 1600)
noised_signal = data['II-Raw'].unsqueeze(1).float().to(device) # (batch, 1600) -> (batch, 1, 1600)
""" 생성자(generator)를 학습 """
optimizer_G.zero_grad()
generated_signal = generator(noised_signal)
pred_fake = discriminator(generated_signal, noised_signal)
loss_GAN = criterion_GAN(pred_fake, real)
loss_pixel = criterion_pixelwise(generated_signal, denoised_signal)
loss_G = loss_GAN + beta*loss_pixel
loss_G.backward()
optimizer_G.step()
""" 판별자(discriminator)를 학습 """
optimizer_D.zero_grad()
pred_real = discriminator(denoised_signal, noised_signal)
loss_real = criterion_GAN(pred_real, real)
pred_fake = discriminator(generated_signal.detach(), noised_signal)
loss_fake = criterion_GAN(pred_fake, fake)
# Total loss
loss_D = 0.5 * (loss_real + loss_fake)
loss_D.backward()
optimizer_D.step()
print(f'Epoch {epoch + 1}/{num_epochs}, Pixel Loss: {loss_pixel.item()}, Generator Loss: {loss_G.item()}, Discriminator Loss: {loss_D.item()}')
# 훈련 시작
train(train_loader)
Epoch 1/200, Pixel Loss: 0.39206695556640625, Generator Loss: 20.619869232177734, Discriminator Loss: 0.4912847876548767 Epoch 2/200, Pixel Loss: 0.33092033863067627, Generator Loss: 17.262197494506836, Discriminator Loss: 0.5702711343765259 Epoch 3/200, Pixel Loss: 0.29239341616630554, Generator Loss: 15.539237022399902, Discriminator Loss: 0.6195992231369019 Epoch 4/200, Pixel Loss: 0.26786306500434875, Generator Loss: 14.22484302520752, Discriminator Loss: 0.6064471006393433 Epoch 5/200, Pixel Loss: 0.2463691681623459, Generator Loss: 13.160906791687012, Discriminator Loss: 0.595705509185791 Epoch 6/200, Pixel Loss: 0.2495196908712387, Generator Loss: 13.436988830566406, Discriminator Loss: 0.5709901452064514 Epoch 7/200, Pixel Loss: 0.2320133000612259, Generator Loss: 12.530221939086914, Discriminator Loss: 0.5317556858062744 Epoch 8/200, Pixel Loss: 0.20397323369979858, Generator Loss: 11.31005859375, Discriminator Loss: 0.432084858417511 Epoch 9/200, Pixel Loss: 0.20892946422100067, Generator Loss: 11.901796340942383, Discriminator Loss: 0.4020645022392273 Epoch 10/200, Pixel Loss: 0.22451789677143097, Generator Loss: 13.052505493164062, Discriminator Loss: 0.2651488482952118 Epoch 11/200, Pixel Loss: 0.21651135385036469, Generator Loss: 12.70083999633789, Discriminator Loss: 0.330175518989563 Epoch 12/200, Pixel Loss: 0.19072885811328888, Generator Loss: 11.490588188171387, Discriminator Loss: 0.46799224615097046 Epoch 13/200, Pixel Loss: 0.2703097462654114, Generator Loss: 15.413373947143555, Discriminator Loss: 0.32171788811683655 Epoch 14/200, Pixel Loss: 0.21348296105861664, Generator Loss: 12.515313148498535, Discriminator Loss: 0.49929121136665344 Epoch 15/200, Pixel Loss: 0.21774588525295258, Generator Loss: 12.326803207397461, Discriminator Loss: 0.4457626938819885 Epoch 16/200, Pixel Loss: 0.2192656248807907, Generator Loss: 12.04947280883789, Discriminator Loss: 0.48654651641845703 Epoch 17/200, Pixel Loss: 0.2583516538143158, Generator Loss: 14.649956703186035, Discriminator Loss: 0.3542785346508026 Epoch 18/200, Pixel Loss: 0.19350993633270264, Generator Loss: 11.323732376098633, Discriminator Loss: 0.3840012848377228 Epoch 19/200, Pixel Loss: 0.19299189746379852, Generator Loss: 11.107316970825195, Discriminator Loss: 0.40811389684677124 Epoch 20/200, Pixel Loss: 0.19388273358345032, Generator Loss: 11.926892280578613, Discriminator Loss: 0.39347130060195923 Epoch 21/200, Pixel Loss: 0.26392847299575806, Generator Loss: 14.838422775268555, Discriminator Loss: 0.4127093255519867 Epoch 22/200, Pixel Loss: 0.2769585847854614, Generator Loss: 16.175935745239258, Discriminator Loss: 0.3849363923072815 Epoch 23/200, Pixel Loss: 0.2169649451971054, Generator Loss: 13.03284740447998, Discriminator Loss: 0.3490813970565796 Epoch 24/200, Pixel Loss: 0.2293407917022705, Generator Loss: 13.571795463562012, Discriminator Loss: 0.32938945293426514 Epoch 25/200, Pixel Loss: 0.22851502895355225, Generator Loss: 13.887431144714355, Discriminator Loss: 0.30636805295944214 Epoch 26/200, Pixel Loss: 0.23198284208774567, Generator Loss: 14.118731498718262, Discriminator Loss: 0.38488274812698364 Epoch 27/200, Pixel Loss: 0.2624986171722412, Generator Loss: 14.965888977050781, Discriminator Loss: 0.4075140953063965 Epoch 28/200, Pixel Loss: 0.23710954189300537, Generator Loss: 14.37332820892334, Discriminator Loss: 0.245625302195549 Epoch 29/200, Pixel Loss: 0.22185130417346954, Generator Loss: 13.608104705810547, Discriminator Loss: 0.27794116735458374 Epoch 30/200, Pixel Loss: 0.1989719569683075, Generator Loss: 12.185248374938965, Discriminator Loss: 0.2471686452627182 Epoch 31/200, Pixel Loss: 0.20700611174106598, Generator Loss: 13.484435081481934, Discriminator Loss: 0.21937865018844604 Epoch 32/200, Pixel Loss: 0.22059135138988495, Generator Loss: 14.020630836486816, Discriminator Loss: 0.20620465278625488 Epoch 33/200, Pixel Loss: 0.2115357220172882, Generator Loss: 13.208044052124023, Discriminator Loss: 0.2363012135028839 Epoch 34/200, Pixel Loss: 0.19196628034114838, Generator Loss: 12.63949966430664, Discriminator Loss: 0.2319139540195465 Epoch 35/200, Pixel Loss: 0.21518008410930634, Generator Loss: 13.774110794067383, Discriminator Loss: 0.2449946403503418 Epoch 36/200, Pixel Loss: 0.20101909339427948, Generator Loss: 13.013513565063477, Discriminator Loss: 0.3501802086830139 Epoch 37/200, Pixel Loss: 0.2664041221141815, Generator Loss: 16.15334129333496, Discriminator Loss: 0.211246058344841 Epoch 38/200, Pixel Loss: 0.17646656930446625, Generator Loss: 12.002964973449707, Discriminator Loss: 0.26457923650741577 Epoch 39/200, Pixel Loss: 0.2263171672821045, Generator Loss: 14.704944610595703, Discriminator Loss: 0.25667867064476013 Epoch 40/200, Pixel Loss: 0.1916707158088684, Generator Loss: 12.57493782043457, Discriminator Loss: 0.29705750942230225 Epoch 41/200, Pixel Loss: 0.24848857522010803, Generator Loss: 15.981220245361328, Discriminator Loss: 0.2468433529138565 Epoch 42/200, Pixel Loss: 0.2061149775981903, Generator Loss: 12.374805450439453, Discriminator Loss: 0.3770815432071686 Epoch 43/200, Pixel Loss: 0.2012983113527298, Generator Loss: 13.37828540802002, Discriminator Loss: 0.20831739902496338 Epoch 44/200, Pixel Loss: 0.1969335377216339, Generator Loss: 12.807853698730469, Discriminator Loss: 0.2507227659225464 Epoch 45/200, Pixel Loss: 0.19695454835891724, Generator Loss: 13.06523323059082, Discriminator Loss: 0.23861587047576904 Epoch 46/200, Pixel Loss: 0.2290845811367035, Generator Loss: 14.649653434753418, Discriminator Loss: 0.4138769507408142 Epoch 47/200, Pixel Loss: 0.177690327167511, Generator Loss: 12.050416946411133, Discriminator Loss: 0.2887153923511505 Epoch 48/200, Pixel Loss: 0.18937556445598602, Generator Loss: 12.534070014953613, Discriminator Loss: 0.26956892013549805 Epoch 49/200, Pixel Loss: 0.2306526154279709, Generator Loss: 14.53172492980957, Discriminator Loss: 0.25153374671936035 Epoch 50/200, Pixel Loss: 0.17950446903705597, Generator Loss: 11.838966369628906, Discriminator Loss: 0.23513451218605042 Epoch 51/200, Pixel Loss: 0.186475470662117, Generator Loss: 12.043170928955078, Discriminator Loss: 0.19824184477329254 Epoch 52/200, Pixel Loss: 0.2035258561372757, Generator Loss: 12.531473159790039, Discriminator Loss: 0.3285735845565796 Epoch 53/200, Pixel Loss: 0.2133450210094452, Generator Loss: 12.750231742858887, Discriminator Loss: 0.30529555678367615 Epoch 54/200, Pixel Loss: 0.17701032757759094, Generator Loss: 11.99243450164795, Discriminator Loss: 0.27630770206451416 Epoch 55/200, Pixel Loss: 0.17906217277050018, Generator Loss: 12.451324462890625, Discriminator Loss: 0.29010140895843506 Epoch 56/200, Pixel Loss: 0.2009618729352951, Generator Loss: 12.628179550170898, Discriminator Loss: 0.28761911392211914 Epoch 57/200, Pixel Loss: 0.20667335391044617, Generator Loss: 13.813590049743652, Discriminator Loss: 0.2524157762527466 Epoch 58/200, Pixel Loss: 0.17282426357269287, Generator Loss: 12.001081466674805, Discriminator Loss: 0.22188293933868408 Epoch 59/200, Pixel Loss: 0.20165900886058807, Generator Loss: 12.665311813354492, Discriminator Loss: 0.24829618632793427 Epoch 60/200, Pixel Loss: 0.16195368766784668, Generator Loss: 11.322961807250977, Discriminator Loss: 0.20841600000858307 Epoch 61/200, Pixel Loss: 0.2023107409477234, Generator Loss: 13.771064758300781, Discriminator Loss: 0.23611143231391907 Epoch 62/200, Pixel Loss: 0.1847107708454132, Generator Loss: 12.458290100097656, Discriminator Loss: 0.22438868880271912 Epoch 63/200, Pixel Loss: 0.22314991056919098, Generator Loss: 14.310927391052246, Discriminator Loss: 0.2539277970790863 Epoch 64/200, Pixel Loss: 0.1999344378709793, Generator Loss: 12.924530982971191, Discriminator Loss: 0.26475048065185547 Epoch 65/200, Pixel Loss: 0.18316350877285004, Generator Loss: 12.326944351196289, Discriminator Loss: 0.25651228427886963 Epoch 66/200, Pixel Loss: 0.18634505569934845, Generator Loss: 12.602663040161133, Discriminator Loss: 0.18041443824768066 Epoch 67/200, Pixel Loss: 0.16523119807243347, Generator Loss: 10.743675231933594, Discriminator Loss: 0.28022071719169617 Epoch 68/200, Pixel Loss: 0.22712890803813934, Generator Loss: 14.492286682128906, Discriminator Loss: 0.27932509779930115 Epoch 69/200, Pixel Loss: 0.18459975719451904, Generator Loss: 12.348836898803711, Discriminator Loss: 0.17085418105125427 Epoch 70/200, Pixel Loss: 0.17287848889827728, Generator Loss: 11.480301856994629, Discriminator Loss: 0.2102023959159851 Epoch 71/200, Pixel Loss: 0.16718560457229614, Generator Loss: 11.943958282470703, Discriminator Loss: 0.19141840934753418 Epoch 72/200, Pixel Loss: 0.1945461630821228, Generator Loss: 12.463325500488281, Discriminator Loss: 0.2812296748161316 Epoch 73/200, Pixel Loss: 0.20854391157627106, Generator Loss: 14.374564170837402, Discriminator Loss: 0.22172726690769196 Epoch 74/200, Pixel Loss: 0.2070968896150589, Generator Loss: 13.170977592468262, Discriminator Loss: 0.2939909100532532 Epoch 75/200, Pixel Loss: 0.19819773733615875, Generator Loss: 13.869943618774414, Discriminator Loss: 0.21822121739387512 Epoch 76/200, Pixel Loss: 0.1827019900083542, Generator Loss: 13.26095199584961, Discriminator Loss: 0.21854890882968903 Epoch 77/200, Pixel Loss: 0.20998287200927734, Generator Loss: 14.027689933776855, Discriminator Loss: 0.14589977264404297 Epoch 78/200, Pixel Loss: 0.18552672863006592, Generator Loss: 12.59793472290039, Discriminator Loss: 0.3051702380180359 Epoch 79/200, Pixel Loss: 0.2221897691488266, Generator Loss: 14.989482879638672, Discriminator Loss: 0.2630409896373749 Epoch 80/200, Pixel Loss: 0.18965549767017365, Generator Loss: 13.488370895385742, Discriminator Loss: 0.2436220347881317 Epoch 81/200, Pixel Loss: 0.22056621313095093, Generator Loss: 14.462695121765137, Discriminator Loss: 0.21299508213996887 Epoch 82/200, Pixel Loss: 0.17003244161605835, Generator Loss: 12.900646209716797, Discriminator Loss: 0.16591672599315643 Epoch 83/200, Pixel Loss: 0.22899481654167175, Generator Loss: 14.65230655670166, Discriminator Loss: 0.5217152237892151 Epoch 84/200, Pixel Loss: 0.21071353554725647, Generator Loss: 14.900676727294922, Discriminator Loss: 0.14683696627616882 Epoch 85/200, Pixel Loss: 0.2020280659198761, Generator Loss: 14.024385452270508, Discriminator Loss: 0.24206724762916565 Epoch 86/200, Pixel Loss: 0.17836619913578033, Generator Loss: 12.414544105529785, Discriminator Loss: 0.22181546688079834 Epoch 87/200, Pixel Loss: 0.17951089143753052, Generator Loss: 12.418776512145996, Discriminator Loss: 0.20292502641677856 Epoch 88/200, Pixel Loss: 0.17197772860527039, Generator Loss: 12.265453338623047, Discriminator Loss: 0.20776160061359406 Epoch 89/200, Pixel Loss: 0.19634568691253662, Generator Loss: 13.531597137451172, Discriminator Loss: 0.22096067667007446 Epoch 90/200, Pixel Loss: 0.20662616193294525, Generator Loss: 14.582246780395508, Discriminator Loss: 0.34136664867401123 Epoch 91/200, Pixel Loss: 0.220137357711792, Generator Loss: 14.765512466430664, Discriminator Loss: 0.18080922961235046 Epoch 92/200, Pixel Loss: 0.16378459334373474, Generator Loss: 13.217025756835938, Discriminator Loss: 0.21086330711841583 Epoch 93/200, Pixel Loss: 0.17916758358478546, Generator Loss: 13.379494667053223, Discriminator Loss: 0.22649535536766052 Epoch 94/200, Pixel Loss: 0.1661853790283203, Generator Loss: 13.112991333007812, Discriminator Loss: 0.09402906894683838 Epoch 95/200, Pixel Loss: 0.22475703060626984, Generator Loss: 15.449575424194336, Discriminator Loss: 0.1379745602607727 Epoch 96/200, Pixel Loss: 0.1851581484079361, Generator Loss: 12.890544891357422, Discriminator Loss: 0.16189336776733398 Epoch 97/200, Pixel Loss: 0.1908087432384491, Generator Loss: 14.110868453979492, Discriminator Loss: 0.1749994307756424 Epoch 98/200, Pixel Loss: 0.15973719954490662, Generator Loss: 12.222156524658203, Discriminator Loss: 0.16569945216178894 Epoch 99/200, Pixel Loss: 0.20927472412586212, Generator Loss: 14.882354736328125, Discriminator Loss: 0.17795515060424805 Epoch 100/200, Pixel Loss: 0.17097440361976624, Generator Loss: 12.927815437316895, Discriminator Loss: 0.13032278418540955 Epoch 101/200, Pixel Loss: 0.1944606900215149, Generator Loss: 14.336282730102539, Discriminator Loss: 0.16332392394542694 Epoch 102/200, Pixel Loss: 0.18008418381214142, Generator Loss: 13.380409240722656, Discriminator Loss: 0.1568404585123062 Epoch 103/200, Pixel Loss: 0.17939090728759766, Generator Loss: 14.017507553100586, Discriminator Loss: 0.26087436079978943 Epoch 104/200, Pixel Loss: 0.1583746373653412, Generator Loss: 12.084163665771484, Discriminator Loss: 0.17016562819480896 Epoch 105/200, Pixel Loss: 0.16764438152313232, Generator Loss: 12.601003646850586, Discriminator Loss: 0.13789238035678864 Epoch 106/200, Pixel Loss: 0.19067879021167755, Generator Loss: 13.355319023132324, Discriminator Loss: 0.19846776127815247 Epoch 107/200, Pixel Loss: 0.18688637018203735, Generator Loss: 13.728151321411133, Discriminator Loss: 0.10794668644666672 Epoch 108/200, Pixel Loss: 0.18155571818351746, Generator Loss: 14.395334243774414, Discriminator Loss: 0.13701896369457245 Epoch 109/200, Pixel Loss: 0.20151996612548828, Generator Loss: 14.06252384185791, Discriminator Loss: 0.13387151062488556 Epoch 110/200, Pixel Loss: 0.18398340046405792, Generator Loss: 13.712345123291016, Discriminator Loss: 0.11007143557071686 Epoch 111/200, Pixel Loss: 0.188456192612648, Generator Loss: 13.949087142944336, Discriminator Loss: 0.15722528100013733 Epoch 112/200, Pixel Loss: 0.16767355799674988, Generator Loss: 13.081933975219727, Discriminator Loss: 0.14592570066452026 Epoch 113/200, Pixel Loss: 0.18069057166576385, Generator Loss: 14.118234634399414, Discriminator Loss: 0.1374659687280655 Epoch 114/200, Pixel Loss: 0.17709708213806152, Generator Loss: 12.672653198242188, Discriminator Loss: 0.15989422798156738 Epoch 115/200, Pixel Loss: 0.18762850761413574, Generator Loss: 13.890693664550781, Discriminator Loss: 0.11232885718345642 Epoch 116/200, Pixel Loss: 0.18008628487586975, Generator Loss: 13.4277925491333, Discriminator Loss: 0.11689715087413788 Epoch 117/200, Pixel Loss: 0.21962261199951172, Generator Loss: 15.513543128967285, Discriminator Loss: 0.6708707213401794 Epoch 118/200, Pixel Loss: 0.1738777458667755, Generator Loss: 13.366241455078125, Discriminator Loss: 0.12987057864665985 Epoch 119/200, Pixel Loss: 0.17965483665466309, Generator Loss: 14.570572853088379, Discriminator Loss: 0.109450563788414 Epoch 120/200, Pixel Loss: 0.21934014558792114, Generator Loss: 16.170703887939453, Discriminator Loss: 0.1182127296924591 Epoch 121/200, Pixel Loss: 0.15437349677085876, Generator Loss: 13.930120468139648, Discriminator Loss: 0.15380218625068665 Epoch 122/200, Pixel Loss: 0.21772754192352295, Generator Loss: 14.983885765075684, Discriminator Loss: 0.2617679834365845 Epoch 123/200, Pixel Loss: 0.16883014142513275, Generator Loss: 13.417669296264648, Discriminator Loss: 0.1264858841896057 Epoch 124/200, Pixel Loss: 0.17789840698242188, Generator Loss: 14.181800842285156, Discriminator Loss: 0.14554345607757568 Epoch 125/200, Pixel Loss: 0.21030250191688538, Generator Loss: 15.719329833984375, Discriminator Loss: 0.1753624975681305 Epoch 126/200, Pixel Loss: 0.17279700934886932, Generator Loss: 13.23509407043457, Discriminator Loss: 0.17005376517772675 Epoch 127/200, Pixel Loss: 0.21865446865558624, Generator Loss: 16.28838539123535, Discriminator Loss: 0.19377219676971436 Epoch 128/200, Pixel Loss: 0.187631756067276, Generator Loss: 13.533557891845703, Discriminator Loss: 0.16681452095508575 Epoch 129/200, Pixel Loss: 0.19721660017967224, Generator Loss: 14.997774124145508, Discriminator Loss: 0.13442286849021912 Epoch 130/200, Pixel Loss: 0.21395355463027954, Generator Loss: 16.059173583984375, Discriminator Loss: 0.1265236735343933 Epoch 131/200, Pixel Loss: 0.21020808815956116, Generator Loss: 15.118551254272461, Discriminator Loss: 0.1779852658510208 Epoch 132/200, Pixel Loss: 0.18066321313381195, Generator Loss: 14.316168785095215, Discriminator Loss: 0.07845483720302582 Epoch 133/200, Pixel Loss: 0.1611448973417282, Generator Loss: 13.584514617919922, Discriminator Loss: 0.13532502949237823 Epoch 134/200, Pixel Loss: 0.20367640256881714, Generator Loss: 15.400361061096191, Discriminator Loss: 0.16843390464782715 Epoch 135/200, Pixel Loss: 0.20514020323753357, Generator Loss: 15.138099670410156, Discriminator Loss: 0.11835415661334991 Epoch 136/200, Pixel Loss: 0.20501147210597992, Generator Loss: 15.649789810180664, Discriminator Loss: 0.10940105468034744 Epoch 137/200, Pixel Loss: 0.17683836817741394, Generator Loss: 14.913768768310547, Discriminator Loss: 0.14872582256793976 Epoch 138/200, Pixel Loss: 0.18482977151870728, Generator Loss: 14.481679916381836, Discriminator Loss: 0.12381315231323242 Epoch 139/200, Pixel Loss: 0.19627170264720917, Generator Loss: 15.74923038482666, Discriminator Loss: 0.26023033261299133 Epoch 140/200, Pixel Loss: 0.21617275476455688, Generator Loss: 16.36776351928711, Discriminator Loss: 0.14504322409629822 Epoch 141/200, Pixel Loss: 0.1858144849538803, Generator Loss: 13.68055248260498, Discriminator Loss: 0.14223188161849976 Epoch 142/200, Pixel Loss: 0.16449734568595886, Generator Loss: 14.082731246948242, Discriminator Loss: 0.06090918928384781 Epoch 143/200, Pixel Loss: 0.17994382977485657, Generator Loss: 16.17618179321289, Discriminator Loss: 0.07093454152345657 Epoch 144/200, Pixel Loss: 0.1799887865781784, Generator Loss: 14.663844108581543, Discriminator Loss: 0.09289762377738953 Epoch 145/200, Pixel Loss: 0.18392729759216309, Generator Loss: 14.582292556762695, Discriminator Loss: 0.16633914411067963 Epoch 146/200, Pixel Loss: 0.1991572082042694, Generator Loss: 15.252350807189941, Discriminator Loss: 0.1419578641653061 Epoch 147/200, Pixel Loss: 0.17084023356437683, Generator Loss: 14.104360580444336, Discriminator Loss: 0.07694285362958908 Epoch 148/200, Pixel Loss: 0.19505085051059723, Generator Loss: 15.067079544067383, Discriminator Loss: 0.16916155815124512 Epoch 149/200, Pixel Loss: 0.18456178903579712, Generator Loss: 13.9661226272583, Discriminator Loss: 0.1597399115562439 Epoch 150/200, Pixel Loss: 0.1919204294681549, Generator Loss: 14.15984058380127, Discriminator Loss: 0.13923782110214233 Epoch 151/200, Pixel Loss: 0.1921243667602539, Generator Loss: 15.298046112060547, Discriminator Loss: 0.11089280247688293 Epoch 152/200, Pixel Loss: 0.18961812555789948, Generator Loss: 15.882105827331543, Discriminator Loss: 0.07084571570158005 Epoch 153/200, Pixel Loss: 0.18661890923976898, Generator Loss: 16.80427360534668, Discriminator Loss: 0.7573320269584656 Epoch 154/200, Pixel Loss: 0.22446292638778687, Generator Loss: 17.2895565032959, Discriminator Loss: 0.09958267211914062 Epoch 155/200, Pixel Loss: 0.17027446627616882, Generator Loss: 14.28364372253418, Discriminator Loss: 0.09803225100040436 Epoch 156/200, Pixel Loss: 0.1708657443523407, Generator Loss: 15.423351287841797, Discriminator Loss: 0.08516083657741547 Epoch 157/200, Pixel Loss: 0.19361354410648346, Generator Loss: 15.466398239135742, Discriminator Loss: 0.11011757701635361 Epoch 158/200, Pixel Loss: 0.1921243667602539, Generator Loss: 15.714143753051758, Discriminator Loss: 0.11368358880281448 Epoch 159/200, Pixel Loss: 0.18384014070034027, Generator Loss: 15.125534057617188, Discriminator Loss: 0.09222066402435303 Epoch 160/200, Pixel Loss: 0.19794417917728424, Generator Loss: 15.539459228515625, Discriminator Loss: 0.06760525703430176 Epoch 161/200, Pixel Loss: 0.17996113002300262, Generator Loss: 15.156673431396484, Discriminator Loss: 0.08763338625431061 Epoch 162/200, Pixel Loss: 0.2045215368270874, Generator Loss: 15.349853515625, Discriminator Loss: 0.14556631445884705 Epoch 163/200, Pixel Loss: 0.1758827567100525, Generator Loss: 15.263423919677734, Discriminator Loss: 0.10666438937187195 Epoch 164/200, Pixel Loss: 0.16977016627788544, Generator Loss: 13.919187545776367, Discriminator Loss: 0.16477692127227783 Epoch 165/200, Pixel Loss: 0.17112980782985687, Generator Loss: 15.417177200317383, Discriminator Loss: 0.06484152376651764 Epoch 166/200, Pixel Loss: 0.19220511615276337, Generator Loss: 14.549093246459961, Discriminator Loss: 0.0775708258152008 Epoch 167/200, Pixel Loss: 0.16055381298065186, Generator Loss: 14.916407585144043, Discriminator Loss: 0.05271044373512268 Epoch 168/200, Pixel Loss: 0.2060530185699463, Generator Loss: 17.495235443115234, Discriminator Loss: 0.10490777343511581 Epoch 169/200, Pixel Loss: 0.19365647435188293, Generator Loss: 17.29241180419922, Discriminator Loss: 0.18488110601902008 Epoch 170/200, Pixel Loss: 0.16261141002178192, Generator Loss: 13.826139450073242, Discriminator Loss: 0.08259628713130951 Epoch 171/200, Pixel Loss: 0.171391099691391, Generator Loss: 14.738153457641602, Discriminator Loss: 0.043965134769678116 Epoch 172/200, Pixel Loss: 0.210211381316185, Generator Loss: 15.828607559204102, Discriminator Loss: 0.16800087690353394 Epoch 173/200, Pixel Loss: 0.1714550405740738, Generator Loss: 16.302125930786133, Discriminator Loss: 0.07599233090877533 Epoch 174/200, Pixel Loss: 0.1596630960702896, Generator Loss: 13.898432731628418, Discriminator Loss: 0.08897125720977783 Epoch 175/200, Pixel Loss: 0.1977158486843109, Generator Loss: 15.333015441894531, Discriminator Loss: 0.09703672677278519 Epoch 176/200, Pixel Loss: 0.1816810965538025, Generator Loss: 14.892333984375, Discriminator Loss: 0.11894577741622925 Epoch 177/200, Pixel Loss: 0.18395976722240448, Generator Loss: 15.485421180725098, Discriminator Loss: 0.15064290165901184 Epoch 178/200, Pixel Loss: 0.1463756561279297, Generator Loss: 13.625365257263184, Discriminator Loss: 0.06837792694568634 Epoch 179/200, Pixel Loss: 0.19800925254821777, Generator Loss: 17.059608459472656, Discriminator Loss: 0.15230877697467804 Epoch 180/200, Pixel Loss: 0.19461394846439362, Generator Loss: 15.21977710723877, Discriminator Loss: 0.11230970919132233 Epoch 181/200, Pixel Loss: 0.1988893449306488, Generator Loss: 17.524246215820312, Discriminator Loss: 0.12110501527786255 Epoch 182/200, Pixel Loss: 0.16497942805290222, Generator Loss: 14.392841339111328, Discriminator Loss: 0.07364828884601593 Epoch 183/200, Pixel Loss: 0.18700702488422394, Generator Loss: 14.951004028320312, Discriminator Loss: 0.0868578851222992 Epoch 184/200, Pixel Loss: 0.17135292291641235, Generator Loss: 15.112149238586426, Discriminator Loss: 0.04340595752000809 Epoch 185/200, Pixel Loss: 0.20046456158161163, Generator Loss: 16.049320220947266, Discriminator Loss: 0.08798983693122864 Epoch 186/200, Pixel Loss: 0.1799478679895401, Generator Loss: 15.13730525970459, Discriminator Loss: 0.10108165442943573 Epoch 187/200, Pixel Loss: 0.16070827841758728, Generator Loss: 15.433231353759766, Discriminator Loss: 0.040085356682538986 Epoch 188/200, Pixel Loss: 0.2120637595653534, Generator Loss: 16.32893943786621, Discriminator Loss: 0.07445918768644333 Epoch 189/200, Pixel Loss: 0.1912928968667984, Generator Loss: 15.304372787475586, Discriminator Loss: 0.13038219511508942 Epoch 190/200, Pixel Loss: 0.16172905266284943, Generator Loss: 15.83034610748291, Discriminator Loss: 0.05860564857721329 Epoch 191/200, Pixel Loss: 0.1894548535346985, Generator Loss: 15.096712112426758, Discriminator Loss: 0.09603703022003174 Epoch 192/200, Pixel Loss: 0.17647449672222137, Generator Loss: 14.13150405883789, Discriminator Loss: 0.07471001893281937 Epoch 193/200, Pixel Loss: 0.20781309902668, Generator Loss: 16.855195999145508, Discriminator Loss: 0.06689904630184174 Epoch 194/200, Pixel Loss: 0.18248191475868225, Generator Loss: 15.315498352050781, Discriminator Loss: 0.12827931344509125 Epoch 195/200, Pixel Loss: 0.1701478213071823, Generator Loss: 14.527774810791016, Discriminator Loss: 0.09307517856359482 Epoch 196/200, Pixel Loss: 0.16357003152370453, Generator Loss: 14.466272354125977, Discriminator Loss: 0.09876611828804016 Epoch 197/200, Pixel Loss: 0.21640290319919586, Generator Loss: 17.5809383392334, Discriminator Loss: 0.19013920426368713 Epoch 198/200, Pixel Loss: 0.176817387342453, Generator Loss: 15.98762035369873, Discriminator Loss: 0.10216650366783142 Epoch 199/200, Pixel Loss: 0.18614302575588226, Generator Loss: 16.190277099609375, Discriminator Loss: 0.05436865985393524 Epoch 200/200, Pixel Loss: 0.19424322247505188, Generator Loss: 16.6041259765625, Discriminator Loss: 0.09916779398918152
In [ ]:
def evaluate(test_loader):
generator.eval()
discriminator.eval()
total_g_loss = 0.0
total_d_loss = 0.0
total_pixel_loss = 0.0
with torch.no_grad():
for i, data in enumerate(test_loader):
real = torch.ones(data['II'].shape[0], 1, 98).to(device) # 진짜(real): 1
fake = torch.zeros(data['II'].shape[0], 1, 98).to(device) # 가짜(fake): 0
denoised_signal = data['II'].unsqueeze(1).float().to(device) # (batch, 1600) -> (batch, 1, 1600)
noised_signal = data['II-Raw'].unsqueeze(1).float().to(device) # (batch, 1600) -> (batch, 1, 1600)
# 생성자 평가
generated_signal = generator(noised_signal)
pred_fake = discriminator(generated_signal, noised_signal)
loss_GAN = criterion_GAN(pred_fake, real)
loss_pixel = criterion_pixelwise(generated_signal, denoised_signal)
loss_G = loss_GAN + beta*loss_pixel
total_g_loss += loss_G.item()
total_pixel_loss += loss_pixel.item()
# 판별자 평가
pred_real = discriminator(denoised_signal, noised_signal)
loss_real = criterion_GAN(pred_real, real)
pred_fake = discriminator(generated_signal, noised_signal)
loss_fake = criterion_GAN(pred_fake, fake)
loss_D = 0.5 * (loss_real + loss_fake)
total_d_loss += loss_D.item()
avg_g_loss = total_g_loss / len(test_loader)
avg_d_loss = total_d_loss / len(test_loader)
avg_pixel_loss = total_pixel_loss / len(test_loader)
print(f'Test set evaluation - Pixel Loss: {avg_pixel_loss:.5f}, Generator Loss: {avg_g_loss:.5f}, Discriminator Loss: {avg_d_loss:.5f}')
# 테스트 셋 평가
evaluate(test_loader)
Test set evaluation - Pixel Loss: 0.16143, Generator Loss: 10.04604, Discriminator Loss: 0.56814
In [ ]:
def plot_signals(real_signals, noise_signals, generated_signals, num_examples=10):
for i in range(num_examples):
plt.figure(figsize=(30, 4))
plt.subplot(1, 2, 1)
plt.plot(real_signals[i], label='Real Signal')
plt.plot(generated_signals[i], label='Generated Signal')
plt.legend()
plt.title(f'Signal {i+1}')
plt.subplot(1, 2, 2)
plt.plot(noise_signals[i], label='Noise Signal')
plt.plot(generated_signals[i], label='Generated Signal')
plt.legend()
plt.title(f'Signal {i+1}')
plt.tight_layout()
plt.show()
def visualize_test_results(data_loader):
generator.eval() # 생성기를 평가 모드로 설정
real_data_samples = []
noise_data_samples = []
generated_data_samples = []
with torch.no_grad():
for data in data_loader:
real_signal = data['II'].unsqueeze(1).float().to(device)
noise_signal = data['II-Raw'].unsqueeze(1).float().to(device)
generated_signal = generator(noise_signal).cpu().numpy()
noise_signal = noise_signal.cpu().numpy()
real_signal = real_signal.cpu().numpy()
real_data_samples.append(real_signal)
noise_data_samples.append(noise_signal)
generated_data_samples.append(generated_signal)
if len(real_data_samples) >= 5:
break
# 리스트에서 numpy 배열로 변환
real_data_samples = np.array(real_data_samples).reshape(-1, 1600)
noise_data_samples = np.array(noise_data_samples).reshape(-1, 1600)
generated_data_samples = np.array(generated_data_samples).reshape(-1, 1600)
plot_signals(real_data_samples, noise_data_samples, generated_data_samples)
# 시각화 실행
visualize_test_results(test_loader)
Gaussian Noise¶
alpha = 0.1
In [ ]:
class GN_ECGDataset(Dataset):
def __init__(self, directory, alpha):
self.data = []
segment_length = 1600 # 2초 길이의 샘플 수
# 모든 환자 디렉터리 반복
for patient_num in range(1, 93):
patient_dir = os.path.join(directory, f"patient{patient_num:03d}")
seg_files = [f for f in os.listdir(patient_dir) if f.endswith('.dat')]
for seg_file in seg_files:
data_file = os.path.join(patient_dir, seg_file)
header_file = os.path.join(patient_dir, seg_file.replace('.dat', '.hea'))
num_channels, samples_per_channel, channel_names = self.parse_header(header_file)
ii_index = channel_names.index('II')
ecg_data = self.load_ecg_data(num_channels, samples_per_channel, data_file)
# 각 세그먼트를 2초씩 잘라서 저장
num_segments = 5
for i in range(num_segments):
start = i * segment_length
end = start + segment_length
segment_data = {
"II": ecg_data[ii_index][start:end]
}
# II 채널 표준화
segment_data["II"] = (segment_data["II"] - np.mean(segment_data["II"])) / np.std(segment_data["II"])
# Gaussian noise 추가하여 II-Raw 생성
noise = np.random.normal(0, 1, segment_length)
segment_data["II-Raw"] = segment_data["II"] + alpha*noise
self.data.append(segment_data)
def parse_header(self, file_path):
with open(file_path, 'r', encoding='latin1') as file:
lines = file.readlines()
num_channels = int(lines[0].split(' ')[1])
samples_per_channel = int(lines[0].split(' ')[3])
channel_names = []
for line in lines[1:num_channels+1]:
channel_info = line.split(' ')
channel_names.append(channel_info[-1].strip())
return num_channels, samples_per_channel, channel_names
def load_ecg_data(self, num_channels, samples_per_channel, data_file):
ecg_data = np.fromfile(data_file, dtype='int16')
ecg_data = ecg_data.reshape((samples_per_channel, num_channels)).T
return ecg_data
def __len__(self):
return len(self.data)
def __getitem__(self, idx):
sample = self.data[idx]
return {key: torch.tensor(value, dtype=torch.float) for key, value in sample.items()}
# 데이터셋과 데이터 로더 설정
GN_01_ecg_dataset = GN_ECGDataset(dataset_directory, 0.1)
# random_split을 사용하여 데이터셋을 나눕니다.
seed = torch.Generator().manual_seed(42)
train_dataset, test_dataset = random_split(GN_01_ecg_dataset, [train_size, test_size], generator=seed)
GN_01_train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True)
GN_01_test_loader = DataLoader(test_dataset, batch_size=16, shuffle=False)
In [ ]:
# 모델 및 최적화 알고리즘 설정
generator = Generator().to(device)
discriminator = Discriminator(signal_dim, noised_dim).to(device)
optimizer_G = torch.optim.Adam(generator.parameters(), lr=learning_rate)
optimizer_D = torch.optim.Adam(discriminator.parameters(), lr=learning_rate)
# 손실 함수(loss function)
criterion_GAN = nn.BCELoss(reduction='mean')
criterion_pixelwise = nn.L1Loss(reduction='mean')
In [ ]:
train(GN_01_train_loader)
Epoch 1/200, Pixel Loss: 0.4184998869895935, Generator Loss: 25.69228172302246, Discriminator Loss: 0.21559280157089233 Epoch 2/200, Pixel Loss: 0.271245539188385, Generator Loss: 21.338577270507812, Discriminator Loss: 0.2794591784477234 Epoch 3/200, Pixel Loss: 0.17226248979568481, Generator Loss: 17.08191680908203, Discriminator Loss: 0.14645148813724518 Epoch 4/200, Pixel Loss: 0.11763772368431091, Generator Loss: 12.427919387817383, Discriminator Loss: 0.19779060781002045 Epoch 5/200, Pixel Loss: 0.11226879060268402, Generator Loss: 11.41683578491211, Discriminator Loss: 0.21942995488643646 Epoch 6/200, Pixel Loss: 0.10470578819513321, Generator Loss: 9.634283065795898, Discriminator Loss: 0.34705275297164917 Epoch 7/200, Pixel Loss: 0.11845527589321136, Generator Loss: 11.087774276733398, Discriminator Loss: 0.2481427788734436 Epoch 8/200, Pixel Loss: 0.10490264743566513, Generator Loss: 9.584970474243164, Discriminator Loss: 0.3141552209854126 Epoch 9/200, Pixel Loss: 0.10081551969051361, Generator Loss: 9.682400703430176, Discriminator Loss: 0.29322701692581177 Epoch 10/200, Pixel Loss: 0.08945748955011368, Generator Loss: 8.281938552856445, Discriminator Loss: 0.3659559488296509 Epoch 11/200, Pixel Loss: 0.1032477617263794, Generator Loss: 10.27543830871582, Discriminator Loss: 0.36308979988098145 Epoch 12/200, Pixel Loss: 0.10487796366214752, Generator Loss: 10.382627487182617, Discriminator Loss: 0.3585377335548401 Epoch 13/200, Pixel Loss: 0.0786774680018425, Generator Loss: 6.778791427612305, Discriminator Loss: 0.4792001247406006 Epoch 14/200, Pixel Loss: 0.09181417524814606, Generator Loss: 8.183713912963867, Discriminator Loss: 0.4354533553123474 Epoch 15/200, Pixel Loss: 0.08541152626276016, Generator Loss: 7.616520881652832, Discriminator Loss: 0.39043253660202026 Epoch 16/200, Pixel Loss: 0.10350678861141205, Generator Loss: 9.984387397766113, Discriminator Loss: 0.33280348777770996 Epoch 17/200, Pixel Loss: 0.0834716334939003, Generator Loss: 7.575829982757568, Discriminator Loss: 0.42767226696014404 Epoch 18/200, Pixel Loss: 0.07738607376813889, Generator Loss: 7.278137683868408, Discriminator Loss: 0.44613319635391235 Epoch 19/200, Pixel Loss: 0.08221839368343353, Generator Loss: 8.09178352355957, Discriminator Loss: 0.46317264437675476 Epoch 20/200, Pixel Loss: 0.07878106832504272, Generator Loss: 8.089790344238281, Discriminator Loss: 0.4195714294910431 Epoch 21/200, Pixel Loss: 0.07195671647787094, Generator Loss: 7.759809494018555, Discriminator Loss: 0.4682617783546448 Epoch 22/200, Pixel Loss: 0.07728719711303711, Generator Loss: 9.280576705932617, Discriminator Loss: 0.4002962112426758 Epoch 23/200, Pixel Loss: 0.0925472304224968, Generator Loss: 10.385173797607422, Discriminator Loss: 0.33332937955856323 Epoch 24/200, Pixel Loss: 0.07314921915531158, Generator Loss: 8.042596817016602, Discriminator Loss: 0.43175411224365234 Epoch 25/200, Pixel Loss: 0.07589422166347504, Generator Loss: 8.877992630004883, Discriminator Loss: 0.3856237828731537 Epoch 26/200, Pixel Loss: 0.07034038752317429, Generator Loss: 9.156564712524414, Discriminator Loss: 0.44431260228157043 Epoch 27/200, Pixel Loss: 0.07560744136571884, Generator Loss: 9.222306251525879, Discriminator Loss: 0.39197254180908203 Epoch 28/200, Pixel Loss: 0.07859806716442108, Generator Loss: 10.227484703063965, Discriminator Loss: 0.3431234061717987 Epoch 29/200, Pixel Loss: 0.08708307892084122, Generator Loss: 10.319602012634277, Discriminator Loss: 0.4159805178642273 Epoch 30/200, Pixel Loss: 0.08191967010498047, Generator Loss: 9.950231552124023, Discriminator Loss: 0.38651221990585327 Epoch 31/200, Pixel Loss: 0.08016153424978256, Generator Loss: 10.06618595123291, Discriminator Loss: 0.4979569911956787 Epoch 32/200, Pixel Loss: 0.07916266471147537, Generator Loss: 10.29487133026123, Discriminator Loss: 0.3773695230484009 Epoch 33/200, Pixel Loss: 0.08709319680929184, Generator Loss: 10.198423385620117, Discriminator Loss: 0.39438140392303467 Epoch 34/200, Pixel Loss: 0.07679019868373871, Generator Loss: 9.956018447875977, Discriminator Loss: 0.42527997493743896 Epoch 35/200, Pixel Loss: 0.08130794018507004, Generator Loss: 9.49355697631836, Discriminator Loss: 0.4589498043060303 Epoch 36/200, Pixel Loss: 0.08456040173768997, Generator Loss: 10.376081466674805, Discriminator Loss: 0.36534905433654785 Epoch 37/200, Pixel Loss: 0.08668447285890579, Generator Loss: 10.127117156982422, Discriminator Loss: 0.348226934671402 Epoch 38/200, Pixel Loss: 0.076898492872715, Generator Loss: 10.483745574951172, Discriminator Loss: 0.3078804612159729 Epoch 39/200, Pixel Loss: 0.07857763767242432, Generator Loss: 10.426793098449707, Discriminator Loss: 0.335863322019577 Epoch 40/200, Pixel Loss: 0.08268717676401138, Generator Loss: 10.41537857055664, Discriminator Loss: 0.3518384099006653 Epoch 41/200, Pixel Loss: 0.07563319057226181, Generator Loss: 10.208086013793945, Discriminator Loss: 0.36137738823890686 Epoch 42/200, Pixel Loss: 0.07518912851810455, Generator Loss: 9.968356132507324, Discriminator Loss: 0.33566173911094666 Epoch 43/200, Pixel Loss: 0.07803209871053696, Generator Loss: 9.579099655151367, Discriminator Loss: 0.603115975856781 Epoch 44/200, Pixel Loss: 0.08000081777572632, Generator Loss: 11.521132469177246, Discriminator Loss: 0.30407610535621643 Epoch 45/200, Pixel Loss: 0.0781073197722435, Generator Loss: 10.745780944824219, Discriminator Loss: 0.3075069189071655 Epoch 46/200, Pixel Loss: 0.08040118962526321, Generator Loss: 10.113402366638184, Discriminator Loss: 0.410767138004303 Epoch 47/200, Pixel Loss: 0.08356326818466187, Generator Loss: 11.323410034179688, Discriminator Loss: 0.29414236545562744 Epoch 48/200, Pixel Loss: 0.0740850642323494, Generator Loss: 10.94498062133789, Discriminator Loss: 0.437002956867218 Epoch 49/200, Pixel Loss: 0.07480678707361221, Generator Loss: 10.069658279418945, Discriminator Loss: 0.3858710825443268 Epoch 50/200, Pixel Loss: 0.07669439166784286, Generator Loss: 11.110727310180664, Discriminator Loss: 0.313664972782135 Epoch 51/200, Pixel Loss: 0.07973227649927139, Generator Loss: 11.307788848876953, Discriminator Loss: 0.31388646364212036 Epoch 52/200, Pixel Loss: 0.08375995606184006, Generator Loss: 11.562135696411133, Discriminator Loss: 0.30228644609451294 Epoch 53/200, Pixel Loss: 0.07887835055589676, Generator Loss: 11.58132266998291, Discriminator Loss: 0.3850110173225403 Epoch 54/200, Pixel Loss: 0.07662755995988846, Generator Loss: 11.690393447875977, Discriminator Loss: 0.3700484037399292 Epoch 55/200, Pixel Loss: 0.0899580717086792, Generator Loss: 12.640044212341309, Discriminator Loss: 0.30388110876083374 Epoch 56/200, Pixel Loss: 0.07837066799402237, Generator Loss: 11.384727478027344, Discriminator Loss: 0.3893861174583435 Epoch 57/200, Pixel Loss: 0.07988277077674866, Generator Loss: 11.477789878845215, Discriminator Loss: 0.33255934715270996 Epoch 58/200, Pixel Loss: 0.07666272670030594, Generator Loss: 10.377997398376465, Discriminator Loss: 0.3486837148666382 Epoch 59/200, Pixel Loss: 0.08754035830497742, Generator Loss: 12.55040168762207, Discriminator Loss: 0.39259856939315796 Epoch 60/200, Pixel Loss: 0.0834217518568039, Generator Loss: 11.00522518157959, Discriminator Loss: 0.3259613513946533 Epoch 61/200, Pixel Loss: 0.07483898103237152, Generator Loss: 10.912763595581055, Discriminator Loss: 0.41046851873397827 Epoch 62/200, Pixel Loss: 0.09111489355564117, Generator Loss: 12.548721313476562, Discriminator Loss: 0.27471548318862915 Epoch 63/200, Pixel Loss: 0.07421877980232239, Generator Loss: 9.547869682312012, Discriminator Loss: 0.40572458505630493 Epoch 64/200, Pixel Loss: 0.07737992703914642, Generator Loss: 10.533610343933105, Discriminator Loss: 0.35126084089279175 Epoch 65/200, Pixel Loss: 0.07741019129753113, Generator Loss: 10.063926696777344, Discriminator Loss: 0.4174130856990814 Epoch 66/200, Pixel Loss: 0.073345847427845, Generator Loss: 10.348877906799316, Discriminator Loss: 0.47331318259239197 Epoch 67/200, Pixel Loss: 0.07222584635019302, Generator Loss: 9.892899513244629, Discriminator Loss: 0.3837113380432129 Epoch 68/200, Pixel Loss: 0.07690935581922531, Generator Loss: 11.109013557434082, Discriminator Loss: 0.3080834746360779 Epoch 69/200, Pixel Loss: 0.07082296907901764, Generator Loss: 10.21562385559082, Discriminator Loss: 0.42394450306892395 Epoch 70/200, Pixel Loss: 0.0790630578994751, Generator Loss: 10.848240852355957, Discriminator Loss: 0.3783823847770691 Epoch 71/200, Pixel Loss: 0.08256639540195465, Generator Loss: 10.289121627807617, Discriminator Loss: 0.4542965292930603 Epoch 72/200, Pixel Loss: 0.07892439514398575, Generator Loss: 10.458006858825684, Discriminator Loss: 0.3957909941673279 Epoch 73/200, Pixel Loss: 0.06782352924346924, Generator Loss: 9.042973518371582, Discriminator Loss: 0.4072907865047455 Epoch 74/200, Pixel Loss: 0.08421684056520462, Generator Loss: 11.460325241088867, Discriminator Loss: 0.35418832302093506 Epoch 75/200, Pixel Loss: 0.08378647267818451, Generator Loss: 11.433167457580566, Discriminator Loss: 0.3426608145236969 Epoch 76/200, Pixel Loss: 0.07545682042837143, Generator Loss: 10.179059982299805, Discriminator Loss: 0.40421342849731445 Epoch 77/200, Pixel Loss: 0.07236950099468231, Generator Loss: 10.10997486114502, Discriminator Loss: 0.4566371440887451 Epoch 78/200, Pixel Loss: 0.07968783378601074, Generator Loss: 9.583984375, Discriminator Loss: 0.4251393675804138 Epoch 79/200, Pixel Loss: 0.07635709643363953, Generator Loss: 10.464543342590332, Discriminator Loss: 0.36926764249801636 Epoch 80/200, Pixel Loss: 0.07379067689180374, Generator Loss: 10.337949752807617, Discriminator Loss: 0.42828619480133057 Epoch 81/200, Pixel Loss: 0.07390247285366058, Generator Loss: 10.27394962310791, Discriminator Loss: 0.413784384727478 Epoch 82/200, Pixel Loss: 0.07977630198001862, Generator Loss: 9.819509506225586, Discriminator Loss: 0.47744184732437134 Epoch 83/200, Pixel Loss: 0.07451630383729935, Generator Loss: 9.999919891357422, Discriminator Loss: 0.3642386794090271 Epoch 84/200, Pixel Loss: 0.07991263270378113, Generator Loss: 9.997385025024414, Discriminator Loss: 0.38817471265792847 Epoch 85/200, Pixel Loss: 0.07379047572612762, Generator Loss: 9.4929780960083, Discriminator Loss: 0.4350220561027527 Epoch 86/200, Pixel Loss: 0.07605037838220596, Generator Loss: 10.268665313720703, Discriminator Loss: 0.4235551953315735 Epoch 87/200, Pixel Loss: 0.0790846198797226, Generator Loss: 11.02523136138916, Discriminator Loss: 0.45749643445014954 Epoch 88/200, Pixel Loss: 0.07454004883766174, Generator Loss: 10.157817840576172, Discriminator Loss: 0.4359890818595886 Epoch 89/200, Pixel Loss: 0.07278721779584885, Generator Loss: 8.75296401977539, Discriminator Loss: 0.5222545266151428 Epoch 90/200, Pixel Loss: 0.07401733845472336, Generator Loss: 9.611679077148438, Discriminator Loss: 0.397882342338562 Epoch 91/200, Pixel Loss: 0.06676500290632248, Generator Loss: 9.081811904907227, Discriminator Loss: 0.457277774810791 Epoch 92/200, Pixel Loss: 0.07399784028530121, Generator Loss: 10.450227737426758, Discriminator Loss: 0.44753509759902954 Epoch 93/200, Pixel Loss: 0.07100512087345123, Generator Loss: 8.62309741973877, Discriminator Loss: 0.4354977607727051 Epoch 94/200, Pixel Loss: 0.07425439357757568, Generator Loss: 9.0634765625, Discriminator Loss: 0.37512117624282837 Epoch 95/200, Pixel Loss: 0.07426264882087708, Generator Loss: 10.421524047851562, Discriminator Loss: 0.39025503396987915 Epoch 96/200, Pixel Loss: 0.0746915340423584, Generator Loss: 8.723773956298828, Discriminator Loss: 0.4488503038883209 Epoch 97/200, Pixel Loss: 0.07480720430612564, Generator Loss: 10.012187957763672, Discriminator Loss: 0.4087194502353668 Epoch 98/200, Pixel Loss: 0.07531975209712982, Generator Loss: 10.795344352722168, Discriminator Loss: 0.4297596216201782 Epoch 99/200, Pixel Loss: 0.08210912346839905, Generator Loss: 10.663909912109375, Discriminator Loss: 0.40441572666168213 Epoch 100/200, Pixel Loss: 0.07171601057052612, Generator Loss: 9.903841018676758, Discriminator Loss: 0.42071032524108887 Epoch 101/200, Pixel Loss: 0.0754690170288086, Generator Loss: 11.28670883178711, Discriminator Loss: 0.34166520833969116 Epoch 102/200, Pixel Loss: 0.0786106064915657, Generator Loss: 10.536884307861328, Discriminator Loss: 0.4066893458366394 Epoch 103/200, Pixel Loss: 0.07918787747621536, Generator Loss: 11.206214904785156, Discriminator Loss: 0.4331391453742981 Epoch 104/200, Pixel Loss: 0.07458395510911942, Generator Loss: 10.409225463867188, Discriminator Loss: 0.32940804958343506 Epoch 105/200, Pixel Loss: 0.07306066155433655, Generator Loss: 9.293447494506836, Discriminator Loss: 0.44826847314834595 Epoch 106/200, Pixel Loss: 0.07340458780527115, Generator Loss: 10.666257858276367, Discriminator Loss: 0.4157102108001709 Epoch 107/200, Pixel Loss: 0.07202602922916412, Generator Loss: 9.645090103149414, Discriminator Loss: 0.44102537631988525 Epoch 108/200, Pixel Loss: 0.07619772106409073, Generator Loss: 10.397980690002441, Discriminator Loss: 0.40923720598220825 Epoch 109/200, Pixel Loss: 0.07395799458026886, Generator Loss: 10.669604301452637, Discriminator Loss: 0.38767099380493164 Epoch 110/200, Pixel Loss: 0.07339252531528473, Generator Loss: 9.700651168823242, Discriminator Loss: 0.39075779914855957 Epoch 111/200, Pixel Loss: 0.07331497967243195, Generator Loss: 10.805309295654297, Discriminator Loss: 0.41619840264320374 Epoch 112/200, Pixel Loss: 0.07018022239208221, Generator Loss: 10.571357727050781, Discriminator Loss: 0.3870046138763428 Epoch 113/200, Pixel Loss: 0.07781597226858139, Generator Loss: 11.334789276123047, Discriminator Loss: 0.3773345351219177 Epoch 114/200, Pixel Loss: 0.07341975718736649, Generator Loss: 10.32734203338623, Discriminator Loss: 0.41985011100769043 Epoch 115/200, Pixel Loss: 0.07113942503929138, Generator Loss: 10.98820686340332, Discriminator Loss: 0.4488205909729004 Epoch 116/200, Pixel Loss: 0.07317546755075455, Generator Loss: 10.27645492553711, Discriminator Loss: 0.3526204228401184 Epoch 117/200, Pixel Loss: 0.06982489675283432, Generator Loss: 9.726598739624023, Discriminator Loss: 0.4735124707221985 Epoch 118/200, Pixel Loss: 0.07162979245185852, Generator Loss: 11.087699890136719, Discriminator Loss: 0.3985099196434021 Epoch 119/200, Pixel Loss: 0.07325578480958939, Generator Loss: 10.841227531433105, Discriminator Loss: 0.41592714190483093 Epoch 120/200, Pixel Loss: 0.07243306934833527, Generator Loss: 10.375917434692383, Discriminator Loss: 0.45878440141677856 Epoch 121/200, Pixel Loss: 0.07033780962228775, Generator Loss: 11.061716079711914, Discriminator Loss: 0.3686017394065857 Epoch 122/200, Pixel Loss: 0.06980488449335098, Generator Loss: 10.138176918029785, Discriminator Loss: 0.43010932207107544 Epoch 123/200, Pixel Loss: 0.06729815155267715, Generator Loss: 10.164909362792969, Discriminator Loss: 0.38133710622787476 Epoch 124/200, Pixel Loss: 0.07280465215444565, Generator Loss: 11.138174057006836, Discriminator Loss: 0.45524027943611145 Epoch 125/200, Pixel Loss: 0.08014051616191864, Generator Loss: 12.103471755981445, Discriminator Loss: 0.4306466579437256 Epoch 126/200, Pixel Loss: 0.06934918463230133, Generator Loss: 10.786994934082031, Discriminator Loss: 0.3910388946533203 Epoch 127/200, Pixel Loss: 0.07020687311887741, Generator Loss: 9.900237083435059, Discriminator Loss: 0.43310415744781494 Epoch 128/200, Pixel Loss: 0.06635638326406479, Generator Loss: 10.687236785888672, Discriminator Loss: 0.39939945936203003 Epoch 129/200, Pixel Loss: 0.07642025500535965, Generator Loss: 11.655075073242188, Discriminator Loss: 0.3556537628173828 Epoch 130/200, Pixel Loss: 0.07239175587892532, Generator Loss: 11.753419876098633, Discriminator Loss: 0.37248748540878296 Epoch 131/200, Pixel Loss: 0.06687024980783463, Generator Loss: 10.952964782714844, Discriminator Loss: 0.40329253673553467 Epoch 132/200, Pixel Loss: 0.07438945770263672, Generator Loss: 12.948779106140137, Discriminator Loss: 0.42802706360816956 Epoch 133/200, Pixel Loss: 0.08273017406463623, Generator Loss: 12.848530769348145, Discriminator Loss: 0.32640403509140015 Epoch 134/200, Pixel Loss: 0.07240428775548935, Generator Loss: 12.048925399780273, Discriminator Loss: 0.3874819278717041 Epoch 135/200, Pixel Loss: 0.06765197962522507, Generator Loss: 11.330146789550781, Discriminator Loss: 0.38346341252326965 Epoch 136/200, Pixel Loss: 0.0710313692688942, Generator Loss: 12.141180038452148, Discriminator Loss: 0.3890835642814636 Epoch 137/200, Pixel Loss: 0.06835819780826569, Generator Loss: 10.901666641235352, Discriminator Loss: 0.4397616386413574 Epoch 138/200, Pixel Loss: 0.07365106791257858, Generator Loss: 12.121271133422852, Discriminator Loss: 0.3159547448158264 Epoch 139/200, Pixel Loss: 0.07335955649614334, Generator Loss: 13.251585006713867, Discriminator Loss: 0.3338296413421631 Epoch 140/200, Pixel Loss: 0.07679290324449539, Generator Loss: 12.757024765014648, Discriminator Loss: 0.34379854798316956 Epoch 141/200, Pixel Loss: 0.07207922637462616, Generator Loss: 11.31602954864502, Discriminator Loss: 0.39312517642974854 Epoch 142/200, Pixel Loss: 0.07186483591794968, Generator Loss: 11.786023139953613, Discriminator Loss: 0.3306505084037781 Epoch 143/200, Pixel Loss: 0.0692986249923706, Generator Loss: 11.29709243774414, Discriminator Loss: 0.34824275970458984 Epoch 144/200, Pixel Loss: 0.07017999142408371, Generator Loss: 10.529098510742188, Discriminator Loss: 0.35560330748558044 Epoch 145/200, Pixel Loss: 0.07378862798213959, Generator Loss: 13.081103324890137, Discriminator Loss: 0.3728880286216736 Epoch 146/200, Pixel Loss: 0.07915686070919037, Generator Loss: 13.626770973205566, Discriminator Loss: 0.4725266695022583 Epoch 147/200, Pixel Loss: 0.0727744847536087, Generator Loss: 13.34221076965332, Discriminator Loss: 0.24969622492790222 Epoch 148/200, Pixel Loss: 0.0743398666381836, Generator Loss: 12.133919715881348, Discriminator Loss: 0.2983874976634979 Epoch 149/200, Pixel Loss: 0.06797587126493454, Generator Loss: 11.27922534942627, Discriminator Loss: 0.4617072641849518 Epoch 150/200, Pixel Loss: 0.06900521367788315, Generator Loss: 11.637077331542969, Discriminator Loss: 0.4962475299835205 Epoch 151/200, Pixel Loss: 0.07427384704351425, Generator Loss: 11.221675872802734, Discriminator Loss: 0.5478182435035706 Epoch 152/200, Pixel Loss: 0.07334659993648529, Generator Loss: 12.164664268493652, Discriminator Loss: 0.44546574354171753 Epoch 153/200, Pixel Loss: 0.070597805082798, Generator Loss: 11.343533515930176, Discriminator Loss: 0.373363196849823 Epoch 154/200, Pixel Loss: 0.07232777029275894, Generator Loss: 12.565715789794922, Discriminator Loss: 0.41737622022628784 Epoch 155/200, Pixel Loss: 0.06693931668996811, Generator Loss: 11.001699447631836, Discriminator Loss: 0.39062321186065674 Epoch 156/200, Pixel Loss: 0.07247672230005264, Generator Loss: 12.803970336914062, Discriminator Loss: 0.35681360960006714 Epoch 157/200, Pixel Loss: 0.07031980156898499, Generator Loss: 11.37632942199707, Discriminator Loss: 0.3395322561264038 Epoch 158/200, Pixel Loss: 0.0742606595158577, Generator Loss: 13.543112754821777, Discriminator Loss: 0.34596407413482666 Epoch 159/200, Pixel Loss: 0.0669415146112442, Generator Loss: 11.425042152404785, Discriminator Loss: 0.42261797189712524 Epoch 160/200, Pixel Loss: 0.07109703123569489, Generator Loss: 10.752099990844727, Discriminator Loss: 0.4215512275695801 Epoch 161/200, Pixel Loss: 0.06800178438425064, Generator Loss: 11.503111839294434, Discriminator Loss: 0.40968042612075806 Epoch 162/200, Pixel Loss: 0.07362042367458344, Generator Loss: 13.992115020751953, Discriminator Loss: 0.3399810194969177 Epoch 163/200, Pixel Loss: 0.07872272282838821, Generator Loss: 14.922356605529785, Discriminator Loss: 0.28596413135528564 Epoch 164/200, Pixel Loss: 0.07156749814748764, Generator Loss: 12.812362670898438, Discriminator Loss: 0.38652241230010986 Epoch 165/200, Pixel Loss: 0.07445907592773438, Generator Loss: 14.62690544128418, Discriminator Loss: 0.4255739450454712 Epoch 166/200, Pixel Loss: 0.06413184106349945, Generator Loss: 10.223104476928711, Discriminator Loss: 0.4411819577217102 Epoch 167/200, Pixel Loss: 0.07325006276369095, Generator Loss: 12.44081974029541, Discriminator Loss: 0.3963469862937927 Epoch 168/200, Pixel Loss: 0.0747247040271759, Generator Loss: 13.326045989990234, Discriminator Loss: 0.3162728548049927 Epoch 169/200, Pixel Loss: 0.06983499228954315, Generator Loss: 12.408539772033691, Discriminator Loss: 0.40163102746009827 Epoch 170/200, Pixel Loss: 0.06809868663549423, Generator Loss: 13.318248748779297, Discriminator Loss: 0.3851841390132904 Epoch 171/200, Pixel Loss: 0.07430834323167801, Generator Loss: 15.015480041503906, Discriminator Loss: 0.33556947112083435 Epoch 172/200, Pixel Loss: 0.0707189068198204, Generator Loss: 13.05313491821289, Discriminator Loss: 0.3784109354019165 Epoch 173/200, Pixel Loss: 0.07120926678180695, Generator Loss: 12.120952606201172, Discriminator Loss: 0.44838204979896545 Epoch 174/200, Pixel Loss: 0.07004567980766296, Generator Loss: 13.501513481140137, Discriminator Loss: 0.36154705286026 Epoch 175/200, Pixel Loss: 0.0720691978931427, Generator Loss: 13.49530029296875, Discriminator Loss: 0.3666502833366394 Epoch 176/200, Pixel Loss: 0.07273288071155548, Generator Loss: 13.019356727600098, Discriminator Loss: 0.3943173289299011 Epoch 177/200, Pixel Loss: 0.07939296215772629, Generator Loss: 13.190067291259766, Discriminator Loss: 0.3430406451225281 Epoch 178/200, Pixel Loss: 0.0599968321621418, Generator Loss: 10.340456008911133, Discriminator Loss: 0.3890334963798523 Epoch 179/200, Pixel Loss: 0.06686491519212723, Generator Loss: 11.402926445007324, Discriminator Loss: 0.4114881753921509 Epoch 180/200, Pixel Loss: 0.07580597698688507, Generator Loss: 13.826648712158203, Discriminator Loss: 0.30781763792037964 Epoch 181/200, Pixel Loss: 0.06931957602500916, Generator Loss: 13.351868629455566, Discriminator Loss: 0.39799487590789795 Epoch 182/200, Pixel Loss: 0.07036969065666199, Generator Loss: 12.495136260986328, Discriminator Loss: 0.4267856478691101 Epoch 183/200, Pixel Loss: 0.06917892396450043, Generator Loss: 12.662677764892578, Discriminator Loss: 0.37310880422592163 Epoch 184/200, Pixel Loss: 0.07265366613864899, Generator Loss: 14.119850158691406, Discriminator Loss: 0.4694482982158661 Epoch 185/200, Pixel Loss: 0.06806108355522156, Generator Loss: 11.51676082611084, Discriminator Loss: 0.33393362164497375 Epoch 186/200, Pixel Loss: 0.06459855288267136, Generator Loss: 10.780448913574219, Discriminator Loss: 0.32226845622062683 Epoch 187/200, Pixel Loss: 0.0784962922334671, Generator Loss: 16.24692153930664, Discriminator Loss: 0.3768414258956909 Epoch 188/200, Pixel Loss: 0.06822250038385391, Generator Loss: 12.237517356872559, Discriminator Loss: 0.3595539927482605 Epoch 189/200, Pixel Loss: 0.07423702627420425, Generator Loss: 13.41695785522461, Discriminator Loss: 0.49599388241767883 Epoch 190/200, Pixel Loss: 0.06786436587572098, Generator Loss: 13.517058372497559, Discriminator Loss: 0.40656888484954834 Epoch 191/200, Pixel Loss: 0.06604767590761185, Generator Loss: 10.887261390686035, Discriminator Loss: 0.3980110287666321 Epoch 192/200, Pixel Loss: 0.07197597622871399, Generator Loss: 13.423809051513672, Discriminator Loss: 0.4030422270298004 Epoch 193/200, Pixel Loss: 0.06900224834680557, Generator Loss: 11.955574989318848, Discriminator Loss: 0.4073267877101898 Epoch 194/200, Pixel Loss: 0.07148627936840057, Generator Loss: 12.477815628051758, Discriminator Loss: 0.3261488676071167 Epoch 195/200, Pixel Loss: 0.06939767301082611, Generator Loss: 13.486488342285156, Discriminator Loss: 0.41691792011260986 Epoch 196/200, Pixel Loss: 0.06919050961732864, Generator Loss: 12.643852233886719, Discriminator Loss: 0.3911847770214081 Epoch 197/200, Pixel Loss: 0.07470261305570602, Generator Loss: 15.985875129699707, Discriminator Loss: 0.3295690417289734 Epoch 198/200, Pixel Loss: 0.072056345641613, Generator Loss: 14.742914199829102, Discriminator Loss: 0.3695858120918274 Epoch 199/200, Pixel Loss: 0.07214448601007462, Generator Loss: 14.082254409790039, Discriminator Loss: 0.3523550033569336 Epoch 200/200, Pixel Loss: 0.06448903679847717, Generator Loss: 12.82226848602295, Discriminator Loss: 0.4084881544113159
In [ ]:
evaluate(GN_01_test_loader)
Test set evaluation - Pixel Loss: 0.05816, Generator Loss: 15.76081, Discriminator Loss: 0.36721
In [ ]:
visualize_test_results(GN_01_test_loader)
alpha = 0.2
In [ ]:
# 데이터셋과 데이터 로더 설정
GN_02_ecg_dataset = GN_ECGDataset(dataset_directory, 0.2)
# random_split을 사용하여 데이터셋을 나눕니다.
seed = torch.Generator().manual_seed(42)
train_dataset, test_dataset = random_split(GN_02_ecg_dataset, [train_size, test_size], generator=seed)
GN_02_train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True)
GN_02_test_loader = DataLoader(test_dataset, batch_size=16, shuffle=False)
In [ ]:
# 모델 및 최적화 알고리즘 설정
generator = Generator().to(device)
discriminator = Discriminator(signal_dim, noised_dim).to(device)
optimizer_G = torch.optim.Adam(generator.parameters(), lr=learning_rate)
optimizer_D = torch.optim.Adam(discriminator.parameters(), lr=learning_rate)
# 손실 함수(loss function)
criterion_GAN = nn.BCELoss(reduction='mean')
criterion_pixelwise = nn.L1Loss(reduction='mean')
In [ ]:
train(GN_02_train_loader)
Epoch 1/200, Pixel Loss: 0.36387649178504944, Generator Loss: 22.7894287109375, Discriminator Loss: 0.39250755310058594 Epoch 2/200, Pixel Loss: 0.2553665041923523, Generator Loss: 14.71239185333252, Discriminator Loss: 0.5118203163146973 Epoch 3/200, Pixel Loss: 0.1652361899614334, Generator Loss: 9.284379005432129, Discriminator Loss: 0.6444370746612549 Epoch 4/200, Pixel Loss: 0.1606115847826004, Generator Loss: 9.2314453125, Discriminator Loss: 0.5400763750076294 Epoch 5/200, Pixel Loss: 0.13286195695400238, Generator Loss: 7.753187656402588, Discriminator Loss: 0.49253517389297485 Epoch 6/200, Pixel Loss: 0.1172066256403923, Generator Loss: 6.715152740478516, Discriminator Loss: 0.5645471811294556 Epoch 7/200, Pixel Loss: 0.10999084264039993, Generator Loss: 6.544416904449463, Discriminator Loss: 0.5648161172866821 Epoch 8/200, Pixel Loss: 0.11551608890295029, Generator Loss: 7.0574951171875, Discriminator Loss: 0.4976188540458679 Epoch 9/200, Pixel Loss: 0.11494608968496323, Generator Loss: 7.120445251464844, Discriminator Loss: 0.5412824153900146 Epoch 10/200, Pixel Loss: 0.12195611745119095, Generator Loss: 7.705503463745117, Discriminator Loss: 0.45565587282180786 Epoch 11/200, Pixel Loss: 0.12617355585098267, Generator Loss: 8.438604354858398, Discriminator Loss: 0.3809124231338501 Epoch 12/200, Pixel Loss: 0.10769351571798325, Generator Loss: 6.658315658569336, Discriminator Loss: 0.5396413803100586 Epoch 13/200, Pixel Loss: 0.1047908365726471, Generator Loss: 6.806297302246094, Discriminator Loss: 0.5062234401702881 Epoch 14/200, Pixel Loss: 0.10574580729007721, Generator Loss: 6.678345680236816, Discriminator Loss: 0.5439285635948181 Epoch 15/200, Pixel Loss: 0.1068742573261261, Generator Loss: 6.839072227478027, Discriminator Loss: 0.4755331873893738 Epoch 16/200, Pixel Loss: 0.10959812253713608, Generator Loss: 6.989462852478027, Discriminator Loss: 0.4940779507160187 Epoch 17/200, Pixel Loss: 0.10653182119131088, Generator Loss: 7.328455924987793, Discriminator Loss: 0.6047258377075195 Epoch 18/200, Pixel Loss: 0.10065742582082748, Generator Loss: 6.407210350036621, Discriminator Loss: 0.5695061683654785 Epoch 19/200, Pixel Loss: 0.11352092772722244, Generator Loss: 8.046064376831055, Discriminator Loss: 0.5198700428009033 Epoch 20/200, Pixel Loss: 0.09852611273527145, Generator Loss: 6.702235221862793, Discriminator Loss: 0.5315250158309937 Epoch 21/200, Pixel Loss: 0.10409659892320633, Generator Loss: 7.426183223724365, Discriminator Loss: 0.5169429779052734 Epoch 22/200, Pixel Loss: 0.10045351833105087, Generator Loss: 6.761890411376953, Discriminator Loss: 0.5077365040779114 Epoch 23/200, Pixel Loss: 0.096712127327919, Generator Loss: 6.810375213623047, Discriminator Loss: 0.5364106297492981 Epoch 24/200, Pixel Loss: 0.09951166063547134, Generator Loss: 6.691415786743164, Discriminator Loss: 0.4787694811820984 Epoch 25/200, Pixel Loss: 0.10509004443883896, Generator Loss: 7.290889263153076, Discriminator Loss: 0.4644591808319092 Epoch 26/200, Pixel Loss: 0.09431815892457962, Generator Loss: 7.04680061340332, Discriminator Loss: 0.5055480003356934 Epoch 27/200, Pixel Loss: 0.09538846462965012, Generator Loss: 6.9395904541015625, Discriminator Loss: 0.47139203548431396 Epoch 28/200, Pixel Loss: 0.11186651885509491, Generator Loss: 8.139288902282715, Discriminator Loss: 0.37719279527664185 Epoch 29/200, Pixel Loss: 0.10922838747501373, Generator Loss: 7.987447738647461, Discriminator Loss: 0.4090301990509033 Epoch 30/200, Pixel Loss: 0.10728827118873596, Generator Loss: 7.472901821136475, Discriminator Loss: 0.49015307426452637 Epoch 31/200, Pixel Loss: 0.1125793606042862, Generator Loss: 8.182547569274902, Discriminator Loss: 0.6479570865631104 Epoch 32/200, Pixel Loss: 0.10212002694606781, Generator Loss: 7.385591506958008, Discriminator Loss: 0.5268096923828125 Epoch 33/200, Pixel Loss: 0.1112680435180664, Generator Loss: 8.515507698059082, Discriminator Loss: 0.48708534240722656 Epoch 34/200, Pixel Loss: 0.10624158382415771, Generator Loss: 7.640448093414307, Discriminator Loss: 0.5601385235786438 Epoch 35/200, Pixel Loss: 0.09906943887472153, Generator Loss: 7.195748329162598, Discriminator Loss: 0.4702823758125305 Epoch 36/200, Pixel Loss: 0.10216968506574631, Generator Loss: 7.671016216278076, Discriminator Loss: 0.4406868815422058 Epoch 37/200, Pixel Loss: 0.11672123521566391, Generator Loss: 9.043686866760254, Discriminator Loss: 0.36892929673194885 Epoch 38/200, Pixel Loss: 0.09868563711643219, Generator Loss: 6.987723350524902, Discriminator Loss: 0.5553348064422607 Epoch 39/200, Pixel Loss: 0.10853744298219681, Generator Loss: 7.841373443603516, Discriminator Loss: 0.5087063312530518 Epoch 40/200, Pixel Loss: 0.11072753369808197, Generator Loss: 8.05795669555664, Discriminator Loss: 0.39989760518074036 Epoch 41/200, Pixel Loss: 0.10199754685163498, Generator Loss: 7.139366149902344, Discriminator Loss: 0.6439871788024902 Epoch 42/200, Pixel Loss: 0.10037712007761002, Generator Loss: 7.640345573425293, Discriminator Loss: 0.4218050539493561 Epoch 43/200, Pixel Loss: 0.11049645394086838, Generator Loss: 7.959565162658691, Discriminator Loss: 0.6657357811927795 Epoch 44/200, Pixel Loss: 0.10318951308727264, Generator Loss: 7.962745666503906, Discriminator Loss: 0.42933881282806396 Epoch 45/200, Pixel Loss: 0.1116948276758194, Generator Loss: 7.906757831573486, Discriminator Loss: 0.4222318232059479 Epoch 46/200, Pixel Loss: 0.09685607999563217, Generator Loss: 7.107097148895264, Discriminator Loss: 0.626219630241394 Epoch 47/200, Pixel Loss: 0.10350639373064041, Generator Loss: 7.465191841125488, Discriminator Loss: 0.5371674299240112 Epoch 48/200, Pixel Loss: 0.12086699903011322, Generator Loss: 9.227801322937012, Discriminator Loss: 0.3917236328125 Epoch 49/200, Pixel Loss: 0.10534446686506271, Generator Loss: 7.485215187072754, Discriminator Loss: 0.5727155804634094 Epoch 50/200, Pixel Loss: 0.10340103507041931, Generator Loss: 8.065627098083496, Discriminator Loss: 0.43024784326553345 Epoch 51/200, Pixel Loss: 0.10745216906070709, Generator Loss: 7.141295433044434, Discriminator Loss: 0.5660980939865112 Epoch 52/200, Pixel Loss: 0.09894931316375732, Generator Loss: 8.058755874633789, Discriminator Loss: 0.39420461654663086 Epoch 53/200, Pixel Loss: 0.1037302315235138, Generator Loss: 7.5531158447265625, Discriminator Loss: 0.48815155029296875 Epoch 54/200, Pixel Loss: 0.10010570287704468, Generator Loss: 7.004542350769043, Discriminator Loss: 0.46445560455322266 Epoch 55/200, Pixel Loss: 0.10986501723527908, Generator Loss: 7.733213424682617, Discriminator Loss: 0.6091048717498779 Epoch 56/200, Pixel Loss: 0.1022251695394516, Generator Loss: 7.210187911987305, Discriminator Loss: 0.5291223526000977 Epoch 57/200, Pixel Loss: 0.10538173466920853, Generator Loss: 7.805011749267578, Discriminator Loss: 0.6744500994682312 Epoch 58/200, Pixel Loss: 0.09858401864767075, Generator Loss: 6.8945207595825195, Discriminator Loss: 0.6349518299102783 Epoch 59/200, Pixel Loss: 0.09979306906461716, Generator Loss: 7.104778289794922, Discriminator Loss: 0.4693627953529358 Epoch 60/200, Pixel Loss: 0.10860471427440643, Generator Loss: 8.846264839172363, Discriminator Loss: 0.43857526779174805 Epoch 61/200, Pixel Loss: 0.10668759047985077, Generator Loss: 7.745826721191406, Discriminator Loss: 0.4376881718635559 Epoch 62/200, Pixel Loss: 0.09557359665632248, Generator Loss: 7.2158660888671875, Discriminator Loss: 0.49777519702911377 Epoch 63/200, Pixel Loss: 0.11291831731796265, Generator Loss: 7.847208023071289, Discriminator Loss: 0.44496476650238037 Epoch 64/200, Pixel Loss: 0.10610523074865341, Generator Loss: 7.964011192321777, Discriminator Loss: 0.4556978642940521 Epoch 65/200, Pixel Loss: 0.10482244193553925, Generator Loss: 7.972884178161621, Discriminator Loss: 0.5013009309768677 Epoch 66/200, Pixel Loss: 0.09940843284130096, Generator Loss: 7.5736799240112305, Discriminator Loss: 0.41265928745269775 Epoch 67/200, Pixel Loss: 0.09676972776651382, Generator Loss: 7.286623477935791, Discriminator Loss: 0.4034886360168457 Epoch 68/200, Pixel Loss: 0.10000312328338623, Generator Loss: 7.430370807647705, Discriminator Loss: 0.4532386064529419 Epoch 69/200, Pixel Loss: 0.10604269057512283, Generator Loss: 7.912997722625732, Discriminator Loss: 0.5893248915672302 Epoch 70/200, Pixel Loss: 0.09957532584667206, Generator Loss: 7.750737190246582, Discriminator Loss: 0.40075579285621643 Epoch 71/200, Pixel Loss: 0.1009957417845726, Generator Loss: 7.710253715515137, Discriminator Loss: 0.40076637268066406 Epoch 72/200, Pixel Loss: 0.10104585438966751, Generator Loss: 7.238537311553955, Discriminator Loss: 0.4988771677017212 Epoch 73/200, Pixel Loss: 0.10484353452920914, Generator Loss: 7.837344169616699, Discriminator Loss: 0.39525651931762695 Epoch 74/200, Pixel Loss: 0.10206423699855804, Generator Loss: 7.173542022705078, Discriminator Loss: 0.6771594882011414 Epoch 75/200, Pixel Loss: 0.10808184742927551, Generator Loss: 8.40389633178711, Discriminator Loss: 0.34747135639190674 Epoch 76/200, Pixel Loss: 0.107576884329319, Generator Loss: 7.785473823547363, Discriminator Loss: 0.40142178535461426 Epoch 77/200, Pixel Loss: 0.10230818390846252, Generator Loss: 7.972042083740234, Discriminator Loss: 0.5894418954849243 Epoch 78/200, Pixel Loss: 0.0986977145075798, Generator Loss: 7.476339340209961, Discriminator Loss: 0.40244072675704956 Epoch 79/200, Pixel Loss: 0.10494205355644226, Generator Loss: 7.820778846740723, Discriminator Loss: 0.4898934066295624 Epoch 80/200, Pixel Loss: 0.10666351020336151, Generator Loss: 8.01373291015625, Discriminator Loss: 0.479512482881546 Epoch 81/200, Pixel Loss: 0.11214065551757812, Generator Loss: 7.728438377380371, Discriminator Loss: 0.4113433361053467 Epoch 82/200, Pixel Loss: 0.10834643989801407, Generator Loss: 7.839803218841553, Discriminator Loss: 0.5065011978149414 Epoch 83/200, Pixel Loss: 0.09260950237512589, Generator Loss: 6.888969898223877, Discriminator Loss: 0.43083280324935913 Epoch 84/200, Pixel Loss: 0.10291270911693573, Generator Loss: 7.713482856750488, Discriminator Loss: 0.37542831897735596 Epoch 85/200, Pixel Loss: 0.09972351044416428, Generator Loss: 7.07749080657959, Discriminator Loss: 0.48069673776626587 Epoch 86/200, Pixel Loss: 0.0984724760055542, Generator Loss: 7.390368461608887, Discriminator Loss: 0.3631270229816437 Epoch 87/200, Pixel Loss: 0.09415756165981293, Generator Loss: 6.9862565994262695, Discriminator Loss: 0.3599001467227936 Epoch 88/200, Pixel Loss: 0.0988517552614212, Generator Loss: 7.244932651519775, Discriminator Loss: 0.47770756483078003 Epoch 89/200, Pixel Loss: 0.09582645446062088, Generator Loss: 7.165373802185059, Discriminator Loss: 0.55146723985672 Epoch 90/200, Pixel Loss: 0.0976068302989006, Generator Loss: 7.031597137451172, Discriminator Loss: 0.5648369789123535 Epoch 91/200, Pixel Loss: 0.09609470516443253, Generator Loss: 7.046267986297607, Discriminator Loss: 0.585915744304657 Epoch 92/200, Pixel Loss: 0.10194848477840424, Generator Loss: 7.36502742767334, Discriminator Loss: 0.3837600350379944 Epoch 93/200, Pixel Loss: 0.1028437688946724, Generator Loss: 7.50545597076416, Discriminator Loss: 0.4508237838745117 Epoch 94/200, Pixel Loss: 0.09790030866861343, Generator Loss: 6.95534610748291, Discriminator Loss: 0.5171352624893188 Epoch 95/200, Pixel Loss: 0.09423058480024338, Generator Loss: 7.062774658203125, Discriminator Loss: 0.3747803568840027 Epoch 96/200, Pixel Loss: 0.1151038110256195, Generator Loss: 8.797760009765625, Discriminator Loss: 0.3320451080799103 Epoch 97/200, Pixel Loss: 0.08530710637569427, Generator Loss: 7.025809288024902, Discriminator Loss: 0.43107959628105164 Epoch 98/200, Pixel Loss: 0.1031501367688179, Generator Loss: 7.236572265625, Discriminator Loss: 0.3178480267524719 Epoch 99/200, Pixel Loss: 0.10457871109247208, Generator Loss: 7.523926258087158, Discriminator Loss: 0.582618772983551 Epoch 100/200, Pixel Loss: 0.10276131331920624, Generator Loss: 6.893623352050781, Discriminator Loss: 0.6110947728157043 Epoch 101/200, Pixel Loss: 0.10002807527780533, Generator Loss: 7.242218494415283, Discriminator Loss: 0.6281845569610596 Epoch 102/200, Pixel Loss: 0.09877046197652817, Generator Loss: 7.4487714767456055, Discriminator Loss: 0.3793061673641205 Epoch 103/200, Pixel Loss: 0.09659577906131744, Generator Loss: 6.829936504364014, Discriminator Loss: 0.5490305423736572 Epoch 104/200, Pixel Loss: 0.10012174397706985, Generator Loss: 7.624721527099609, Discriminator Loss: 0.43121999502182007 Epoch 105/200, Pixel Loss: 0.10859504342079163, Generator Loss: 7.632016181945801, Discriminator Loss: 0.4303009510040283 Epoch 106/200, Pixel Loss: 0.09965424984693527, Generator Loss: 7.3872175216674805, Discriminator Loss: 0.5354353189468384 Epoch 107/200, Pixel Loss: 0.10488772392272949, Generator Loss: 7.700567245483398, Discriminator Loss: 0.4099859595298767 Epoch 108/200, Pixel Loss: 0.10084317624568939, Generator Loss: 7.154697418212891, Discriminator Loss: 0.43922579288482666 Epoch 109/200, Pixel Loss: 0.09444859623908997, Generator Loss: 6.959284782409668, Discriminator Loss: 0.4937954545021057 Epoch 110/200, Pixel Loss: 0.10848407447338104, Generator Loss: 7.901823997497559, Discriminator Loss: 0.477664053440094 Epoch 111/200, Pixel Loss: 0.10446416586637497, Generator Loss: 7.647695541381836, Discriminator Loss: 0.4439159035682678 Epoch 112/200, Pixel Loss: 0.10090303421020508, Generator Loss: 7.246286392211914, Discriminator Loss: 0.4420880377292633 Epoch 113/200, Pixel Loss: 0.1060674861073494, Generator Loss: 7.576822280883789, Discriminator Loss: 0.5255514979362488 Epoch 114/200, Pixel Loss: 0.08779731392860413, Generator Loss: 6.63343620300293, Discriminator Loss: 0.5091843605041504 Epoch 115/200, Pixel Loss: 0.09907231479883194, Generator Loss: 6.894959449768066, Discriminator Loss: 0.5207345485687256 Epoch 116/200, Pixel Loss: 0.10079824179410934, Generator Loss: 6.98307991027832, Discriminator Loss: 0.5252737998962402 Epoch 117/200, Pixel Loss: 0.10660777986049652, Generator Loss: 8.446998596191406, Discriminator Loss: 0.42568421363830566 Epoch 118/200, Pixel Loss: 0.10484123975038528, Generator Loss: 7.733681678771973, Discriminator Loss: 0.45183849334716797 Epoch 119/200, Pixel Loss: 0.1016169935464859, Generator Loss: 7.717437744140625, Discriminator Loss: 0.456652969121933 Epoch 120/200, Pixel Loss: 0.10827330499887466, Generator Loss: 8.002086639404297, Discriminator Loss: 0.4579054117202759 Epoch 121/200, Pixel Loss: 0.0995408147573471, Generator Loss: 7.821643829345703, Discriminator Loss: 0.41017019748687744 Epoch 122/200, Pixel Loss: 0.10103026777505875, Generator Loss: 7.851400852203369, Discriminator Loss: 0.3262360095977783 Epoch 123/200, Pixel Loss: 0.09841059148311615, Generator Loss: 7.308443069458008, Discriminator Loss: 0.47034019231796265 Epoch 124/200, Pixel Loss: 0.0943535566329956, Generator Loss: 7.397665023803711, Discriminator Loss: 0.5619556903839111 Epoch 125/200, Pixel Loss: 0.0962633490562439, Generator Loss: 7.32834529876709, Discriminator Loss: 0.49629542231559753 Epoch 126/200, Pixel Loss: 0.10293488204479218, Generator Loss: 7.601626396179199, Discriminator Loss: 0.4425036907196045 Epoch 127/200, Pixel Loss: 0.10196074843406677, Generator Loss: 7.608893394470215, Discriminator Loss: 0.40441709756851196 Epoch 128/200, Pixel Loss: 0.0945785716176033, Generator Loss: 7.072381496429443, Discriminator Loss: 0.42050397396087646 Epoch 129/200, Pixel Loss: 0.10530862212181091, Generator Loss: 7.385584831237793, Discriminator Loss: 0.48977741599082947 Epoch 130/200, Pixel Loss: 0.10777068883180618, Generator Loss: 7.821932315826416, Discriminator Loss: 0.5449700355529785 Epoch 131/200, Pixel Loss: 0.10047967731952667, Generator Loss: 7.258458137512207, Discriminator Loss: 0.48647964000701904 Epoch 132/200, Pixel Loss: 0.09995529055595398, Generator Loss: 7.646071910858154, Discriminator Loss: 0.40222832560539246 Epoch 133/200, Pixel Loss: 0.09997579455375671, Generator Loss: 7.052875518798828, Discriminator Loss: 0.5691349506378174 Epoch 134/200, Pixel Loss: 0.09858013689517975, Generator Loss: 6.955046653747559, Discriminator Loss: 0.5552692413330078 Epoch 135/200, Pixel Loss: 0.08628644794225693, Generator Loss: 7.053832054138184, Discriminator Loss: 0.4513944983482361 Epoch 136/200, Pixel Loss: 0.09073959290981293, Generator Loss: 6.9452619552612305, Discriminator Loss: 0.4263279438018799 Epoch 137/200, Pixel Loss: 0.09448893368244171, Generator Loss: 7.015325546264648, Discriminator Loss: 0.656179666519165 Epoch 138/200, Pixel Loss: 0.094534732401371, Generator Loss: 7.1419219970703125, Discriminator Loss: 0.5259650349617004 Epoch 139/200, Pixel Loss: 0.09617972373962402, Generator Loss: 7.476428508758545, Discriminator Loss: 0.4609237611293793 Epoch 140/200, Pixel Loss: 0.10038263350725174, Generator Loss: 7.747062683105469, Discriminator Loss: 0.38475221395492554 Epoch 141/200, Pixel Loss: 0.09948226809501648, Generator Loss: 7.432041168212891, Discriminator Loss: 0.606094479560852 Epoch 142/200, Pixel Loss: 0.10405208170413971, Generator Loss: 7.971325874328613, Discriminator Loss: 0.4087983965873718 Epoch 143/200, Pixel Loss: 0.10150136798620224, Generator Loss: 8.137487411499023, Discriminator Loss: 0.41241857409477234 Epoch 144/200, Pixel Loss: 0.10688647627830505, Generator Loss: 8.25853443145752, Discriminator Loss: 0.45229530334472656 Epoch 145/200, Pixel Loss: 0.10232227295637131, Generator Loss: 7.275415897369385, Discriminator Loss: 0.5585876107215881 Epoch 146/200, Pixel Loss: 0.09886640310287476, Generator Loss: 7.861792087554932, Discriminator Loss: 0.6169407367706299 Epoch 147/200, Pixel Loss: 0.09106408059597015, Generator Loss: 7.523932456970215, Discriminator Loss: 0.5139966011047363 Epoch 148/200, Pixel Loss: 0.10084585100412369, Generator Loss: 7.4162445068359375, Discriminator Loss: 0.5353297591209412 Epoch 149/200, Pixel Loss: 0.0949934646487236, Generator Loss: 7.484342575073242, Discriminator Loss: 0.5917354822158813 Epoch 150/200, Pixel Loss: 0.09602588415145874, Generator Loss: 8.144100189208984, Discriminator Loss: 0.49996092915534973 Epoch 151/200, Pixel Loss: 0.09465459734201431, Generator Loss: 7.74343204498291, Discriminator Loss: 0.5282487273216248 Epoch 152/200, Pixel Loss: 0.1037178561091423, Generator Loss: 8.10583782196045, Discriminator Loss: 0.3909109830856323 Epoch 153/200, Pixel Loss: 0.09810112416744232, Generator Loss: 8.047183990478516, Discriminator Loss: 0.34660208225250244 Epoch 154/200, Pixel Loss: 0.0927811861038208, Generator Loss: 7.089190483093262, Discriminator Loss: 0.537407636642456 Epoch 155/200, Pixel Loss: 0.09833768755197525, Generator Loss: 7.535067558288574, Discriminator Loss: 0.533199667930603 Epoch 156/200, Pixel Loss: 0.0979098379611969, Generator Loss: 7.850387096405029, Discriminator Loss: 0.4764001965522766 Epoch 157/200, Pixel Loss: 0.10162906348705292, Generator Loss: 7.596141815185547, Discriminator Loss: 0.5326472520828247 Epoch 158/200, Pixel Loss: 0.10512720793485641, Generator Loss: 7.744045257568359, Discriminator Loss: 0.48661935329437256 Epoch 159/200, Pixel Loss: 0.10470299422740936, Generator Loss: 7.983916759490967, Discriminator Loss: 0.41515451669692993 Epoch 160/200, Pixel Loss: 0.10444053262472153, Generator Loss: 7.985878944396973, Discriminator Loss: 0.3724963665008545 Epoch 161/200, Pixel Loss: 0.09711616486310959, Generator Loss: 7.179837226867676, Discriminator Loss: 0.4336869716644287 Epoch 162/200, Pixel Loss: 0.09660307317972183, Generator Loss: 7.254779815673828, Discriminator Loss: 0.4178405702114105 Epoch 163/200, Pixel Loss: 0.0975692942738533, Generator Loss: 6.959600925445557, Discriminator Loss: 0.5525486469268799 Epoch 164/200, Pixel Loss: 0.1017010360956192, Generator Loss: 8.018941879272461, Discriminator Loss: 0.3279198408126831 Epoch 165/200, Pixel Loss: 0.08945254981517792, Generator Loss: 7.174774169921875, Discriminator Loss: 0.4517245292663574 Epoch 166/200, Pixel Loss: 0.09360669553279877, Generator Loss: 7.531864643096924, Discriminator Loss: 0.40863680839538574 Epoch 167/200, Pixel Loss: 0.09052451699972153, Generator Loss: 7.354523658752441, Discriminator Loss: 0.39663049578666687 Epoch 168/200, Pixel Loss: 0.09879828989505768, Generator Loss: 7.547579288482666, Discriminator Loss: 0.5084188580513 Epoch 169/200, Pixel Loss: 0.09042329341173172, Generator Loss: 7.08253812789917, Discriminator Loss: 0.47714072465896606 Epoch 170/200, Pixel Loss: 0.10395228862762451, Generator Loss: 7.744917869567871, Discriminator Loss: 0.3425952196121216 Epoch 171/200, Pixel Loss: 0.08850806951522827, Generator Loss: 6.0252861976623535, Discriminator Loss: 0.6067677736282349 Epoch 172/200, Pixel Loss: 0.10206964612007141, Generator Loss: 7.286230087280273, Discriminator Loss: 0.46450215578079224 Epoch 173/200, Pixel Loss: 0.10147824138402939, Generator Loss: 7.475391387939453, Discriminator Loss: 0.44674360752105713 Epoch 174/200, Pixel Loss: 0.10236741602420807, Generator Loss: 7.023863315582275, Discriminator Loss: 0.6046643257141113 Epoch 175/200, Pixel Loss: 0.09000059962272644, Generator Loss: 7.498195171356201, Discriminator Loss: 0.4522690176963806 Epoch 176/200, Pixel Loss: 0.09177516400814056, Generator Loss: 7.098307132720947, Discriminator Loss: 0.4652414321899414 Epoch 177/200, Pixel Loss: 0.1055172011256218, Generator Loss: 8.054435729980469, Discriminator Loss: 0.6020073890686035 Epoch 178/200, Pixel Loss: 0.09923483431339264, Generator Loss: 8.065793991088867, Discriminator Loss: 0.43655717372894287 Epoch 179/200, Pixel Loss: 0.09702747315168381, Generator Loss: 7.968117713928223, Discriminator Loss: 0.3562161922454834 Epoch 180/200, Pixel Loss: 0.0987916812300682, Generator Loss: 7.940621852874756, Discriminator Loss: 0.3210943937301636 Epoch 181/200, Pixel Loss: 0.09402864426374435, Generator Loss: 6.9482831954956055, Discriminator Loss: 0.6832982301712036 Epoch 182/200, Pixel Loss: 0.10412152856588364, Generator Loss: 7.564249515533447, Discriminator Loss: 0.6302326321601868 Epoch 183/200, Pixel Loss: 0.09120164811611176, Generator Loss: 6.944719314575195, Discriminator Loss: 0.4975398778915405 Epoch 184/200, Pixel Loss: 0.09708824008703232, Generator Loss: 7.071582794189453, Discriminator Loss: 0.4504740238189697 Epoch 185/200, Pixel Loss: 0.09986951947212219, Generator Loss: 7.733616828918457, Discriminator Loss: 0.3768443763256073 Epoch 186/200, Pixel Loss: 0.09180112928152084, Generator Loss: 7.266900062561035, Discriminator Loss: 0.47771185636520386 Epoch 187/200, Pixel Loss: 0.09482669830322266, Generator Loss: 6.409388065338135, Discriminator Loss: 0.6215565800666809 Epoch 188/200, Pixel Loss: 0.09434931725263596, Generator Loss: 7.254343032836914, Discriminator Loss: 0.3985353112220764 Epoch 189/200, Pixel Loss: 0.09105115383863449, Generator Loss: 7.0143046379089355, Discriminator Loss: 0.38805636763572693 Epoch 190/200, Pixel Loss: 0.09554972499608994, Generator Loss: 6.885110855102539, Discriminator Loss: 0.4955245852470398 Epoch 191/200, Pixel Loss: 0.09514894336462021, Generator Loss: 6.807788848876953, Discriminator Loss: 0.40088772773742676 Epoch 192/200, Pixel Loss: 0.10326860100030899, Generator Loss: 7.703766822814941, Discriminator Loss: 0.47568386793136597 Epoch 193/200, Pixel Loss: 0.09013207256793976, Generator Loss: 6.639475345611572, Discriminator Loss: 0.4493706226348877 Epoch 194/200, Pixel Loss: 0.09778203815221786, Generator Loss: 7.247729301452637, Discriminator Loss: 0.4666832387447357 Epoch 195/200, Pixel Loss: 0.10195638239383698, Generator Loss: 7.89650297164917, Discriminator Loss: 0.5790175199508667 Epoch 196/200, Pixel Loss: 0.0886402428150177, Generator Loss: 6.412120342254639, Discriminator Loss: 0.7583118081092834 Epoch 197/200, Pixel Loss: 0.09762821346521378, Generator Loss: 7.44094181060791, Discriminator Loss: 0.4655802845954895 Epoch 198/200, Pixel Loss: 0.09377022832632065, Generator Loss: 6.7623090744018555, Discriminator Loss: 0.5398871302604675 Epoch 199/200, Pixel Loss: 0.09170300513505936, Generator Loss: 6.916144847869873, Discriminator Loss: 0.4609636664390564 Epoch 200/200, Pixel Loss: 0.10209741443395615, Generator Loss: 7.775061130523682, Discriminator Loss: 0.33199387788772583
In [ ]:
evaluate(GN_02_test_loader)
Test set evaluation - Pixel Loss: 0.08237, Generator Loss: 7.86039, Discriminator Loss: 0.26355
In [ ]:
visualize_test_results(GN_02_test_loader)
High Frequency Noise¶
In [ ]:
class HF_ECGDataset(Dataset):
def __init__(self, directory):
self.data = []
segment_length = 1600 # 2초 길이의 샘플 수
# 모든 환자 디렉터리 반복
for patient_num in range(1, 93):
patient_dir = os.path.join(directory, f"patient{patient_num:03d}")
seg_files = [f for f in os.listdir(patient_dir) if f.endswith('.dat')]
for seg_file in seg_files:
data_file = os.path.join(patient_dir, seg_file)
header_file = os.path.join(patient_dir, seg_file.replace('.dat', '.hea'))
num_channels, samples_per_channel, channel_names = self.parse_header(header_file)
ii_index = channel_names.index('II')
ecg_data = self.load_ecg_data(num_channels, samples_per_channel, data_file)
# 각 세그먼트를 2초씩 잘라서 저장
num_segments = 5
for i in range(num_segments):
start = i * segment_length
end = start + segment_length
segment_data = {
"II": ecg_data[ii_index][start:end]
}
# II 채널 표준화
segment_data["II"] = (segment_data["II"] - np.mean(segment_data["II"])) / np.std(segment_data["II"])
# 랜덤 주파수의 high frequency noise 추가하여 II-Raw 생성
random_frequency = np.random.uniform(50, 100)
t = np.linspace(0, 2, segment_length, endpoint=False)
high_freq_noise = 0.1 * np.sin(2 * np.pi * random_frequency * t) # 랜덤 주파수의 고주파 노이즈
segment_data["II-Raw"] = segment_data["II"] + high_freq_noise
self.data.append(segment_data)
def parse_header(self, file_path):
with open(file_path, 'r', encoding='latin1') as file:
lines = file.readlines()
num_channels = int(lines[0].split(' ')[1])
samples_per_channel = int(lines[0].split(' ')[3])
channel_names = []
for line in lines[1:num_channels+1]:
channel_info = line.split(' ')
channel_names.append(channel_info[-1].strip())
return num_channels, samples_per_channel, channel_names
def load_ecg_data(self, num_channels, samples_per_channel, data_file):
ecg_data = np.fromfile(data_file, dtype='int16')
ecg_data = ecg_data.reshape((samples_per_channel, num_channels)).T
return ecg_data
def __len__(self):
return len(self.data)
def __getitem__(self, idx):
sample = self.data[idx]
return {key: torch.tensor(value, dtype=torch.float) for key, value in sample.items()}
# 데이터셋과 데이터 로더 설정
HF_ecg_dataset = HF_ECGDataset(dataset_directory)
# random_split을 사용하여 데이터셋을 나눕니다.
seed = torch.Generator().manual_seed(42)
train_dataset, test_dataset = random_split(HF_ecg_dataset, [train_size, test_size], generator=seed)
HF_train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True)
HF_test_loader = DataLoader(test_dataset, batch_size=16, shuffle=False)
In [ ]:
# 모델 및 최적화 알고리즘 설정
generator = Generator().to(device)
discriminator = Discriminator(signal_dim, noised_dim).to(device)
optimizer_G = torch.optim.Adam(generator.parameters(), lr=learning_rate)
optimizer_D = torch.optim.Adam(discriminator.parameters(), lr=learning_rate)
# 손실 함수(loss function)
criterion_GAN = nn.BCELoss(reduction='mean')
criterion_pixelwise = nn.L1Loss(reduction='mean')
In [ ]:
train(HF_train_loader)
Epoch 1/200, Pixel Loss: 0.4554530680179596, Generator Loss: 31.783733367919922, Discriminator Loss: 0.2070542722940445 Epoch 2/200, Pixel Loss: 0.21022437512874603, Generator Loss: 14.74088191986084, Discriminator Loss: 0.34174856543540955 Epoch 3/200, Pixel Loss: 0.1519792377948761, Generator Loss: 15.164966583251953, Discriminator Loss: 0.12043393403291702 Epoch 4/200, Pixel Loss: 0.11428924649953842, Generator Loss: 12.569782257080078, Discriminator Loss: 0.1390605866909027 Epoch 5/200, Pixel Loss: 0.09650153666734695, Generator Loss: 12.310834884643555, Discriminator Loss: 0.211290642619133 Epoch 6/200, Pixel Loss: 0.09431913495063782, Generator Loss: 11.324161529541016, Discriminator Loss: 0.1286637932062149 Epoch 7/200, Pixel Loss: 0.10500384122133255, Generator Loss: 15.955427169799805, Discriminator Loss: 0.19491158425807953 Epoch 8/200, Pixel Loss: 0.08163084089756012, Generator Loss: 11.770698547363281, Discriminator Loss: 0.24797716736793518 Epoch 9/200, Pixel Loss: 0.08285237103700638, Generator Loss: 13.138980865478516, Discriminator Loss: 0.12586508691310883 Epoch 10/200, Pixel Loss: 0.10342033952474594, Generator Loss: 18.188446044921875, Discriminator Loss: 0.04416187107563019 Epoch 11/200, Pixel Loss: 0.07528284192085266, Generator Loss: 16.329833984375, Discriminator Loss: 0.12407396733760834 Epoch 12/200, Pixel Loss: 0.08576946705579758, Generator Loss: 18.89992904663086, Discriminator Loss: 0.082955002784729 Epoch 13/200, Pixel Loss: 0.09526988118886948, Generator Loss: 23.314821243286133, Discriminator Loss: 0.04406601935625076 Epoch 14/200, Pixel Loss: 0.08523348718881607, Generator Loss: 24.283296585083008, Discriminator Loss: 0.045650482177734375 Epoch 15/200, Pixel Loss: 0.07722452282905579, Generator Loss: 25.797550201416016, Discriminator Loss: 0.034500621259212494 Epoch 16/200, Pixel Loss: 0.07768478989601135, Generator Loss: 26.75173568725586, Discriminator Loss: 0.02693958953022957 Epoch 17/200, Pixel Loss: 0.08572544902563095, Generator Loss: 29.879121780395508, Discriminator Loss: 0.02201635017991066 Epoch 18/200, Pixel Loss: 0.08359520137310028, Generator Loss: 28.35310935974121, Discriminator Loss: 0.03588080406188965 Epoch 19/200, Pixel Loss: 0.07068205624818802, Generator Loss: 26.794296264648438, Discriminator Loss: 0.030731188133358955 Epoch 20/200, Pixel Loss: 0.0966152772307396, Generator Loss: 34.89556121826172, Discriminator Loss: 0.01701328530907631 Epoch 21/200, Pixel Loss: 0.08130620419979095, Generator Loss: 34.28847122192383, Discriminator Loss: 0.014448370784521103 Epoch 22/200, Pixel Loss: 0.10818924754858017, Generator Loss: 36.49433898925781, Discriminator Loss: 0.018588373437523842 Epoch 23/200, Pixel Loss: 0.0973721295595169, Generator Loss: 29.235210418701172, Discriminator Loss: 0.24765518307685852 Epoch 24/200, Pixel Loss: 0.06918393820524216, Generator Loss: 22.636940002441406, Discriminator Loss: 0.05907013639807701 Epoch 25/200, Pixel Loss: 0.08127174526453018, Generator Loss: 27.56538963317871, Discriminator Loss: 0.025240298360586166 Epoch 26/200, Pixel Loss: 0.09088865667581558, Generator Loss: 31.755268096923828, Discriminator Loss: 0.020806871354579926 Epoch 27/200, Pixel Loss: 0.08524415642023087, Generator Loss: 33.424556732177734, Discriminator Loss: 0.012604748830199242 Epoch 28/200, Pixel Loss: 0.08860155194997787, Generator Loss: 35.55028533935547, Discriminator Loss: 0.009165876545011997 Epoch 29/200, Pixel Loss: 0.09298104792833328, Generator Loss: 36.41962814331055, Discriminator Loss: 0.012863943353295326 Epoch 30/200, Pixel Loss: 0.0846899002790451, Generator Loss: 36.428802490234375, Discriminator Loss: 0.009160813875496387 Epoch 31/200, Pixel Loss: 0.10219155251979828, Generator Loss: 42.04072952270508, Discriminator Loss: 0.006510576233267784 Epoch 32/200, Pixel Loss: 0.09918469190597534, Generator Loss: 40.39529037475586, Discriminator Loss: 0.006782087963074446 Epoch 33/200, Pixel Loss: 0.09249511361122131, Generator Loss: 39.27998352050781, Discriminator Loss: 0.007591536268591881 Epoch 34/200, Pixel Loss: 0.10316795110702515, Generator Loss: 42.7995491027832, Discriminator Loss: 0.00408141640946269 Epoch 35/200, Pixel Loss: 0.08504734188318253, Generator Loss: 41.202354431152344, Discriminator Loss: 0.01148742064833641 Epoch 36/200, Pixel Loss: 0.10134780406951904, Generator Loss: 45.130184173583984, Discriminator Loss: 0.0016141580417752266 Epoch 37/200, Pixel Loss: 0.08799304813146591, Generator Loss: 42.465980529785156, Discriminator Loss: 0.004237497225403786 Epoch 38/200, Pixel Loss: 0.09447187185287476, Generator Loss: 43.80339813232422, Discriminator Loss: 0.004485113080590963 Epoch 39/200, Pixel Loss: 0.08239535987377167, Generator Loss: 43.44000244140625, Discriminator Loss: 0.006647788919508457 Epoch 40/200, Pixel Loss: 0.092877097427845, Generator Loss: 44.07835006713867, Discriminator Loss: 0.005255646072328091 Epoch 41/200, Pixel Loss: 0.08539588749408722, Generator Loss: 44.51115036010742, Discriminator Loss: 0.004895199090242386 Epoch 42/200, Pixel Loss: 0.08519446104764938, Generator Loss: 44.723388671875, Discriminator Loss: 0.004551597870886326 Epoch 43/200, Pixel Loss: 0.08222610503435135, Generator Loss: 41.79090881347656, Discriminator Loss: 0.0016744108870625496 Epoch 44/200, Pixel Loss: 0.08481597900390625, Generator Loss: 49.95701599121094, Discriminator Loss: 0.002329286653548479 Epoch 45/200, Pixel Loss: 0.0902717113494873, Generator Loss: 46.909854888916016, Discriminator Loss: 0.005630492232739925 Epoch 46/200, Pixel Loss: 0.08899499475955963, Generator Loss: 34.712886810302734, Discriminator Loss: 1.01168692111969 Epoch 47/200, Pixel Loss: 0.08150815963745117, Generator Loss: 23.349559783935547, Discriminator Loss: 0.134553462266922 Epoch 48/200, Pixel Loss: 0.09723762422800064, Generator Loss: 31.239910125732422, Discriminator Loss: 0.03517872095108032 Epoch 49/200, Pixel Loss: 0.10344823449850082, Generator Loss: 34.84236145019531, Discriminator Loss: 0.02193715050816536 Epoch 50/200, Pixel Loss: 0.08809373527765274, Generator Loss: 35.732749938964844, Discriminator Loss: 0.01899022050201893 Epoch 51/200, Pixel Loss: 0.09795762598514557, Generator Loss: 39.05964660644531, Discriminator Loss: 0.008989809080958366 Epoch 52/200, Pixel Loss: 0.10051879286766052, Generator Loss: 40.57844161987305, Discriminator Loss: 0.0074558742344379425 Epoch 53/200, Pixel Loss: 0.08175235241651535, Generator Loss: 36.98003005981445, Discriminator Loss: 0.009848267771303654 Epoch 54/200, Pixel Loss: 0.09844688326120377, Generator Loss: 45.063621520996094, Discriminator Loss: 0.004395040217787027 Epoch 55/200, Pixel Loss: 0.10248164087533951, Generator Loss: 44.35293197631836, Discriminator Loss: 0.0047564078122377396 Epoch 56/200, Pixel Loss: 0.09098365902900696, Generator Loss: 41.714256286621094, Discriminator Loss: 0.006757128518074751 Epoch 57/200, Pixel Loss: 0.09352704882621765, Generator Loss: 44.004512786865234, Discriminator Loss: 0.0031894827261567116 Epoch 58/200, Pixel Loss: 0.08129089325666428, Generator Loss: 46.534324645996094, Discriminator Loss: 0.004894045181572437 Epoch 59/200, Pixel Loss: 0.11622413247823715, Generator Loss: 51.737953186035156, Discriminator Loss: 0.002340286737307906 Epoch 60/200, Pixel Loss: 0.09557054936885834, Generator Loss: 50.21390151977539, Discriminator Loss: 0.007001902908086777 Epoch 61/200, Pixel Loss: 0.10588119179010391, Generator Loss: 54.94865036010742, Discriminator Loss: 0.009827634319663048 Epoch 62/200, Pixel Loss: 0.10330604016780853, Generator Loss: 52.602561950683594, Discriminator Loss: 0.005198209546506405 Epoch 63/200, Pixel Loss: 0.09455572068691254, Generator Loss: 49.48241424560547, Discriminator Loss: 0.004703463986515999 Epoch 64/200, Pixel Loss: 0.08533348143100739, Generator Loss: 51.93570327758789, Discriminator Loss: 0.003622691612690687 Epoch 65/200, Pixel Loss: 0.0830676406621933, Generator Loss: 47.61897277832031, Discriminator Loss: 0.0048690312542021275 Epoch 66/200, Pixel Loss: 0.08761382848024368, Generator Loss: 51.34882354736328, Discriminator Loss: 0.004034190904349089 Epoch 67/200, Pixel Loss: 0.09572465717792511, Generator Loss: 52.603206634521484, Discriminator Loss: 0.0026615075767040253 Epoch 68/200, Pixel Loss: 0.08403734117746353, Generator Loss: 48.2488899230957, Discriminator Loss: 0.006542969029396772 Epoch 69/200, Pixel Loss: 0.08840809017419815, Generator Loss: 53.258323669433594, Discriminator Loss: 0.0008985151071101427 Epoch 70/200, Pixel Loss: 0.10625546425580978, Generator Loss: 57.458251953125, Discriminator Loss: 0.0038706029299646616 Epoch 71/200, Pixel Loss: 0.07853325456380844, Generator Loss: 49.19474792480469, Discriminator Loss: 0.001208058325573802 Epoch 72/200, Pixel Loss: 0.09735017269849777, Generator Loss: 59.73601150512695, Discriminator Loss: 0.02637900598347187 Epoch 73/200, Pixel Loss: 0.10898353159427643, Generator Loss: 35.8967399597168, Discriminator Loss: 1.485106348991394 Epoch 74/200, Pixel Loss: 0.10496777296066284, Generator Loss: 32.08087921142578, Discriminator Loss: 0.07504700124263763 Epoch 75/200, Pixel Loss: 0.07185865938663483, Generator Loss: 32.24117660522461, Discriminator Loss: 0.036177679896354675 Epoch 76/200, Pixel Loss: 0.07469163835048676, Generator Loss: 34.1518669128418, Discriminator Loss: 0.02323339134454727 Epoch 77/200, Pixel Loss: 0.07693689316511154, Generator Loss: 34.763458251953125, Discriminator Loss: 0.018166866153478622 Epoch 78/200, Pixel Loss: 0.08438774198293686, Generator Loss: 39.41299819946289, Discriminator Loss: 0.017522510141134262 Epoch 79/200, Pixel Loss: 0.07763954997062683, Generator Loss: 39.93253707885742, Discriminator Loss: 0.01029217429459095 Epoch 80/200, Pixel Loss: 0.08289971947669983, Generator Loss: 41.68998718261719, Discriminator Loss: 0.007631207816302776 Epoch 81/200, Pixel Loss: 0.09937702119350433, Generator Loss: 44.890106201171875, Discriminator Loss: 0.006860556546598673 Epoch 82/200, Pixel Loss: 0.09355577081441879, Generator Loss: 47.54543685913086, Discriminator Loss: 0.0058937110006809235 Epoch 83/200, Pixel Loss: 0.0836300253868103, Generator Loss: 44.993919372558594, Discriminator Loss: 0.010284651070833206 Epoch 84/200, Pixel Loss: 0.09210415929555893, Generator Loss: 47.44923782348633, Discriminator Loss: 0.003534679301083088 Epoch 85/200, Pixel Loss: 0.10951488465070724, Generator Loss: 55.80876922607422, Discriminator Loss: 0.004679817706346512 Epoch 86/200, Pixel Loss: 0.0919538214802742, Generator Loss: 50.88223648071289, Discriminator Loss: 0.004980246536433697 Epoch 87/200, Pixel Loss: 0.09027280658483505, Generator Loss: 52.66563415527344, Discriminator Loss: 0.0019220463000237942 Epoch 88/200, Pixel Loss: 0.094021737575531, Generator Loss: 48.95351791381836, Discriminator Loss: 0.008167373016476631 Epoch 89/200, Pixel Loss: 0.10642191767692566, Generator Loss: 56.82439041137695, Discriminator Loss: 0.0049822283908724785 Epoch 90/200, Pixel Loss: 0.08793961256742477, Generator Loss: 49.3328857421875, Discriminator Loss: 0.003682494629174471 Epoch 91/200, Pixel Loss: 0.08749948441982269, Generator Loss: 55.480430603027344, Discriminator Loss: 0.004738560877740383 Epoch 92/200, Pixel Loss: 0.1147012934088707, Generator Loss: 59.882476806640625, Discriminator Loss: 0.003371428232640028 Epoch 93/200, Pixel Loss: 0.09239247441291809, Generator Loss: 54.12368392944336, Discriminator Loss: 0.010927410796284676 Epoch 94/200, Pixel Loss: 0.0981835350394249, Generator Loss: 53.044158935546875, Discriminator Loss: 0.00510189076885581 Epoch 95/200, Pixel Loss: 0.0809706598520279, Generator Loss: 50.41398620605469, Discriminator Loss: 0.003388702403753996 Epoch 96/200, Pixel Loss: 0.09456288814544678, Generator Loss: 57.91358184814453, Discriminator Loss: 0.002343426225706935 Epoch 97/200, Pixel Loss: 0.07873428612947464, Generator Loss: 56.199771881103516, Discriminator Loss: 0.005277705378830433 Epoch 98/200, Pixel Loss: 0.10084906965494156, Generator Loss: 56.4371452331543, Discriminator Loss: 0.012991227209568024 Epoch 99/200, Pixel Loss: 0.09162630885839462, Generator Loss: 60.55791473388672, Discriminator Loss: 0.0037719726096838713 Epoch 100/200, Pixel Loss: 0.09448357671499252, Generator Loss: 55.234771728515625, Discriminator Loss: 0.005547896958887577 Epoch 101/200, Pixel Loss: 0.08405620604753494, Generator Loss: 59.246986389160156, Discriminator Loss: 0.0013657095842063427 Epoch 102/200, Pixel Loss: 0.08926044404506683, Generator Loss: 56.868690490722656, Discriminator Loss: 0.004065480083227158 Epoch 103/200, Pixel Loss: 0.08676660060882568, Generator Loss: 56.82643508911133, Discriminator Loss: 0.0049581220373511314 Epoch 104/200, Pixel Loss: 0.08954811841249466, Generator Loss: 39.07188034057617, Discriminator Loss: 0.17454957962036133 Epoch 105/200, Pixel Loss: 0.08436717092990875, Generator Loss: 40.38607406616211, Discriminator Loss: 0.052778396755456924 Epoch 106/200, Pixel Loss: 0.08938830345869064, Generator Loss: 44.09074783325195, Discriminator Loss: 0.01864713802933693 Epoch 107/200, Pixel Loss: 0.09334895759820938, Generator Loss: 44.97211456298828, Discriminator Loss: 0.011174513027071953 Epoch 108/200, Pixel Loss: 0.08961796760559082, Generator Loss: 48.34809112548828, Discriminator Loss: 0.007817547768354416 Epoch 109/200, Pixel Loss: 0.07877904921770096, Generator Loss: 42.725528717041016, Discriminator Loss: 0.008246684446930885 Epoch 110/200, Pixel Loss: 0.08626288920640945, Generator Loss: 48.09469223022461, Discriminator Loss: 0.003259114921092987 Epoch 111/200, Pixel Loss: 0.08836876600980759, Generator Loss: 52.203826904296875, Discriminator Loss: 0.004713323432952166 Epoch 112/200, Pixel Loss: 0.0893184095621109, Generator Loss: 48.47845458984375, Discriminator Loss: 0.0026758171152323484 Epoch 113/200, Pixel Loss: 0.08730337023735046, Generator Loss: 52.05429458618164, Discriminator Loss: 0.004242902155965567 Epoch 114/200, Pixel Loss: 0.08180543035268784, Generator Loss: 49.00968551635742, Discriminator Loss: 0.005799394566565752 Epoch 115/200, Pixel Loss: 0.07945873588323593, Generator Loss: 54.71493911743164, Discriminator Loss: 0.0031516519375145435 Epoch 116/200, Pixel Loss: 0.0903601124882698, Generator Loss: 59.84451675415039, Discriminator Loss: 0.011476779356598854 Epoch 117/200, Pixel Loss: 0.08615997433662415, Generator Loss: 58.65169906616211, Discriminator Loss: 0.0006947001093067229 Epoch 118/200, Pixel Loss: 0.08629947155714035, Generator Loss: 54.4923210144043, Discriminator Loss: 0.004084461834281683 Epoch 119/200, Pixel Loss: 0.0907571017742157, Generator Loss: 55.72064208984375, Discriminator Loss: 0.018804442137479782 Epoch 120/200, Pixel Loss: 0.08302699774503708, Generator Loss: 55.44072723388672, Discriminator Loss: 0.0024385738652199507 Epoch 121/200, Pixel Loss: 0.0820508748292923, Generator Loss: 55.061485290527344, Discriminator Loss: 0.0033067597541958094 Epoch 122/200, Pixel Loss: 0.0816781148314476, Generator Loss: 54.04719161987305, Discriminator Loss: 0.0035168281756341457 Epoch 123/200, Pixel Loss: 0.07773253321647644, Generator Loss: 54.094505310058594, Discriminator Loss: 0.007979373447597027 Epoch 124/200, Pixel Loss: 0.08818008005619049, Generator Loss: 58.4444694519043, Discriminator Loss: 0.00364198861643672 Epoch 125/200, Pixel Loss: 0.1012844517827034, Generator Loss: 64.16295623779297, Discriminator Loss: 0.003427779534831643 Epoch 126/200, Pixel Loss: 0.08219266682863235, Generator Loss: 59.0078125, Discriminator Loss: 0.0007966769626364112 Epoch 127/200, Pixel Loss: 0.07947713881731033, Generator Loss: 59.08611297607422, Discriminator Loss: 0.002226507291197777 Epoch 128/200, Pixel Loss: 0.085182324051857, Generator Loss: 65.19209289550781, Discriminator Loss: 0.0006022138986736536 Epoch 129/200, Pixel Loss: 0.08957342058420181, Generator Loss: 64.00122833251953, Discriminator Loss: 0.0005738025065511465 Epoch 130/200, Pixel Loss: 0.07265709340572357, Generator Loss: 59.184959411621094, Discriminator Loss: 0.0019088678527623415 Epoch 131/200, Pixel Loss: 0.08177977055311203, Generator Loss: 58.675193786621094, Discriminator Loss: 0.010958361439406872 Epoch 132/200, Pixel Loss: 0.08793909102678299, Generator Loss: 60.31879806518555, Discriminator Loss: 0.0005208757938817143 Epoch 133/200, Pixel Loss: 0.08856744319200516, Generator Loss: 61.467994689941406, Discriminator Loss: 0.006837380118668079 Epoch 134/200, Pixel Loss: 0.08543645590543747, Generator Loss: 62.133914947509766, Discriminator Loss: 0.0008442184189334512 Epoch 135/200, Pixel Loss: 0.09658677875995636, Generator Loss: 67.16282653808594, Discriminator Loss: 0.00350678781978786 Epoch 136/200, Pixel Loss: 0.1016339361667633, Generator Loss: 65.98936462402344, Discriminator Loss: 0.001661189366132021 Epoch 137/200, Pixel Loss: 0.09857440739870071, Generator Loss: 70.41082763671875, Discriminator Loss: 0.0004952285089530051 Epoch 138/200, Pixel Loss: 0.07605257630348206, Generator Loss: 47.9392204284668, Discriminator Loss: 0.8475552201271057 Epoch 139/200, Pixel Loss: 0.104756660759449, Generator Loss: 48.724945068359375, Discriminator Loss: 0.025213753804564476 Epoch 140/200, Pixel Loss: 0.08866298198699951, Generator Loss: 41.855010986328125, Discriminator Loss: 0.010206533595919609 Epoch 141/200, Pixel Loss: 0.09523924440145493, Generator Loss: 49.58555603027344, Discriminator Loss: 0.005313583184033632 Epoch 142/200, Pixel Loss: 0.07677871733903885, Generator Loss: 43.68568801879883, Discriminator Loss: 0.014167077839374542 Epoch 143/200, Pixel Loss: 0.06990266591310501, Generator Loss: 45.51544952392578, Discriminator Loss: 0.007665739394724369 Epoch 144/200, Pixel Loss: 0.08498251438140869, Generator Loss: 51.77128219604492, Discriminator Loss: 0.007568442262709141 Epoch 145/200, Pixel Loss: 0.07971008867025375, Generator Loss: 49.23684310913086, Discriminator Loss: 0.0026979809626936913 Epoch 146/200, Pixel Loss: 0.08460982143878937, Generator Loss: 54.904258728027344, Discriminator Loss: 0.0026930326130241156 Epoch 147/200, Pixel Loss: 0.08370482921600342, Generator Loss: 55.41433334350586, Discriminator Loss: 0.0037878775037825108 Epoch 148/200, Pixel Loss: 0.09305768460035324, Generator Loss: 60.182212829589844, Discriminator Loss: 0.005598924122750759 Epoch 149/200, Pixel Loss: 0.09565272927284241, Generator Loss: 56.24224853515625, Discriminator Loss: 0.0033104517497122288 Epoch 150/200, Pixel Loss: 0.091341033577919, Generator Loss: 59.59064865112305, Discriminator Loss: 0.005281446967273951 Epoch 151/200, Pixel Loss: 0.08938208222389221, Generator Loss: 58.520851135253906, Discriminator Loss: 0.0008582173031754792 Epoch 152/200, Pixel Loss: 0.09632842987775803, Generator Loss: 61.58516311645508, Discriminator Loss: 0.00037611121661029756 Epoch 153/200, Pixel Loss: 0.08615050464868546, Generator Loss: 60.19208908081055, Discriminator Loss: 0.0028592110611498356 Epoch 154/200, Pixel Loss: 0.10230055451393127, Generator Loss: 63.0416374206543, Discriminator Loss: 0.0014282369520515203 Epoch 155/200, Pixel Loss: 0.09117467701435089, Generator Loss: 60.575077056884766, Discriminator Loss: 0.001282637589611113 Epoch 156/200, Pixel Loss: 0.10280009359121323, Generator Loss: 65.70272064208984, Discriminator Loss: 0.0012015303364023566 Epoch 157/200, Pixel Loss: 0.08887837827205658, Generator Loss: 62.0810546875, Discriminator Loss: 0.003200695849955082 Epoch 158/200, Pixel Loss: 0.10262368619441986, Generator Loss: 70.07960510253906, Discriminator Loss: 8.709414396435022e-05 Epoch 159/200, Pixel Loss: 0.09538835287094116, Generator Loss: 64.95088195800781, Discriminator Loss: 0.0002466145670041442 Epoch 160/200, Pixel Loss: 0.08571170270442963, Generator Loss: 63.09918975830078, Discriminator Loss: 0.0005768825649283826 Epoch 161/200, Pixel Loss: 0.08086208254098892, Generator Loss: 60.56665802001953, Discriminator Loss: 0.0029012481682002544 Epoch 162/200, Pixel Loss: 0.08521533012390137, Generator Loss: 58.346065521240234, Discriminator Loss: 0.0077554648742079735 Epoch 163/200, Pixel Loss: 0.0925784483551979, Generator Loss: 66.73079681396484, Discriminator Loss: 0.003319671843200922 Epoch 164/200, Pixel Loss: 0.08646077662706375, Generator Loss: 65.02767944335938, Discriminator Loss: 0.0019513396546244621 Epoch 165/200, Pixel Loss: 0.08477921038866043, Generator Loss: 61.93980026245117, Discriminator Loss: 0.0007295606192201376 Epoch 166/200, Pixel Loss: 0.09552362561225891, Generator Loss: 70.54017639160156, Discriminator Loss: 0.0032715557608753443 Epoch 167/200, Pixel Loss: 0.08590351790189743, Generator Loss: 60.85734558105469, Discriminator Loss: 0.0006533917039632797 Epoch 168/200, Pixel Loss: 0.09504935890436172, Generator Loss: 66.59974670410156, Discriminator Loss: 0.0009463662281632423 Epoch 169/200, Pixel Loss: 0.0874093696475029, Generator Loss: 67.16053009033203, Discriminator Loss: 0.0011176853440701962 Epoch 170/200, Pixel Loss: 0.08320600539445877, Generator Loss: 35.65757751464844, Discriminator Loss: 0.06364636868238449 Epoch 171/200, Pixel Loss: 0.09724639356136322, Generator Loss: 53.567787170410156, Discriminator Loss: 0.005301056429743767 Epoch 172/200, Pixel Loss: 0.09126943349838257, Generator Loss: 53.67066955566406, Discriminator Loss: 0.00686401454731822 Epoch 173/200, Pixel Loss: 0.07931429892778397, Generator Loss: 54.371761322021484, Discriminator Loss: 0.00936500821262598 Epoch 174/200, Pixel Loss: 0.09203734993934631, Generator Loss: 58.84690856933594, Discriminator Loss: 0.001607059151865542 Epoch 175/200, Pixel Loss: 0.08868429064750671, Generator Loss: 59.05876541137695, Discriminator Loss: 0.004003539681434631 Epoch 176/200, Pixel Loss: 0.08667784184217453, Generator Loss: 58.411163330078125, Discriminator Loss: 0.0030783284455537796 Epoch 177/200, Pixel Loss: 0.10459743440151215, Generator Loss: 65.80213928222656, Discriminator Loss: 0.0016225778963416815 Epoch 178/200, Pixel Loss: 0.09461789578199387, Generator Loss: 68.60438537597656, Discriminator Loss: 0.0018662369111552835 Epoch 179/200, Pixel Loss: 0.08281354606151581, Generator Loss: 57.905845642089844, Discriminator Loss: 0.004306423477828503 Epoch 180/200, Pixel Loss: 0.08123674243688583, Generator Loss: 60.94367218017578, Discriminator Loss: 0.004140033852308989 Epoch 181/200, Pixel Loss: 0.07557842135429382, Generator Loss: 58.646148681640625, Discriminator Loss: 0.0013515176251530647 Epoch 182/200, Pixel Loss: 0.08314821869134903, Generator Loss: 63.076454162597656, Discriminator Loss: 0.0015417624963447452 Epoch 183/200, Pixel Loss: 0.07799047231674194, Generator Loss: 63.049198150634766, Discriminator Loss: 0.009946738369762897 Epoch 184/200, Pixel Loss: 0.09332866221666336, Generator Loss: 69.53429412841797, Discriminator Loss: 0.002529720775783062 Epoch 185/200, Pixel Loss: 0.10168920457363129, Generator Loss: 72.23904418945312, Discriminator Loss: 0.002168814418837428 Epoch 186/200, Pixel Loss: 0.09145256131887436, Generator Loss: 70.95944213867188, Discriminator Loss: 0.0007078414782881737 Epoch 187/200, Pixel Loss: 0.08214187622070312, Generator Loss: 70.98368835449219, Discriminator Loss: 0.0013454393483698368 Epoch 188/200, Pixel Loss: 0.08131980895996094, Generator Loss: 66.72307586669922, Discriminator Loss: 0.0013674431247636676 Epoch 189/200, Pixel Loss: 0.07883105427026749, Generator Loss: 68.27095794677734, Discriminator Loss: 0.00044815611909143627 Epoch 190/200, Pixel Loss: 0.08761201798915863, Generator Loss: 75.2790298461914, Discriminator Loss: 0.0003012628003489226 Epoch 191/200, Pixel Loss: 0.07558082044124603, Generator Loss: 65.72266387939453, Discriminator Loss: 0.004146029241383076 Epoch 192/200, Pixel Loss: 0.07347965985536575, Generator Loss: 70.05474853515625, Discriminator Loss: 0.0011651460081338882 Epoch 193/200, Pixel Loss: 0.08514854311943054, Generator Loss: 68.02081298828125, Discriminator Loss: 0.004767927806824446 Epoch 194/200, Pixel Loss: 0.1066071093082428, Generator Loss: 47.77150344848633, Discriminator Loss: 0.13204972445964813 Epoch 195/200, Pixel Loss: 0.0734628215432167, Generator Loss: 46.38980484008789, Discriminator Loss: 0.021991940215229988 Epoch 196/200, Pixel Loss: 0.0929371789097786, Generator Loss: 57.631282806396484, Discriminator Loss: 0.003684208495542407 Epoch 197/200, Pixel Loss: 0.08484889566898346, Generator Loss: 62.30564880371094, Discriminator Loss: 0.0033180657774209976 Epoch 198/200, Pixel Loss: 0.08651778101921082, Generator Loss: 60.01272201538086, Discriminator Loss: 0.006522100418806076 Epoch 199/200, Pixel Loss: 0.07100677490234375, Generator Loss: 53.318023681640625, Discriminator Loss: 0.003201252780854702 Epoch 200/200, Pixel Loss: 0.0820435881614685, Generator Loss: 63.6020393371582, Discriminator Loss: 0.017804091796278954
In [ ]:
evaluate(HF_test_loader)
Test set evaluation - Pixel Loss: 0.07331, Generator Loss: 53.03710, Discriminator Loss: 0.08497
In [ ]:
visualize_test_results(HF_test_loader)
Combined Noise¶
In [ ]:
class CN_ECGDataset(Dataset):
def __init__(self, directory):
self.data = []
segment_length = 1600 # 2초 길이의 샘플 수
# 모든 환자 디렉터리 반복
for patient_num in range(1, 93):
patient_dir = os.path.join(directory, f"patient{patient_num:03d}")
seg_files = [f for f in os.listdir(patient_dir) if f.endswith('.dat')]
for seg_file in seg_files:
data_file = os.path.join(patient_dir, seg_file)
header_file = os.path.join(patient_dir, seg_file.replace('.dat', '.hea'))
num_channels, samples_per_channel, channel_names = self.parse_header(header_file)
ii_index = channel_names.index('II')
ecg_data = self.load_ecg_data(num_channels, samples_per_channel, data_file)
# 각 세그먼트를 2초씩 잘라서 저장
num_segments = 5
for i in range(num_segments):
start = i * segment_length
end = start + segment_length
segment_data = {
"II": ecg_data[ii_index][start:end]
}
# II 채널 표준화
segment_data["II"] = (segment_data["II"] - np.mean(segment_data["II"])) / np.std(segment_data["II"])
# 랜덤 주파수의 high frequency noise와 Gaussian noise를 추가하여 II-Raw 생성
random_frequency = np.random.uniform(50, 100)
t = np.linspace(0, 2, segment_length, endpoint=False)
high_freq_noise = 0.1 * np.sin(2 * np.pi * random_frequency * t) # 랜덤 주파수의 고주파 노이즈
noise = np.random.normal(0, 1, segment_length) # 가우시안 노이즈
segment_data["II-Raw"] = segment_data["II"] + high_freq_noise + 0.1*noise
self.data.append(segment_data)
def parse_header(self, file_path):
with open(file_path, 'r', encoding='latin1') as file:
lines = file.readlines()
num_channels = int(lines[0].split(' ')[1])
samples_per_channel = int(lines[0].split(' ')[3])
channel_names = []
for line in lines[1:num_channels+1]:
channel_info = line.split(' ')
channel_names.append(channel_info[-1].strip())
return num_channels, samples_per_channel, channel_names
def load_ecg_data(self, num_channels, samples_per_channel, data_file):
ecg_data = np.fromfile(data_file, dtype='int16')
ecg_data = ecg_data.reshape((samples_per_channel, num_channels)).T
return ecg_data
def __len__(self):
return len(self.data)
def __getitem__(self, idx):
sample = self.data[idx]
return {key: torch.tensor(value, dtype=torch.float) for key, value in sample.items()}
# 데이터셋과 데이터 로더 설정
CN_ecg_dataset = CN_ECGDataset(dataset_directory)
# random_split을 사용하여 데이터셋을 나눕니다.
seed = torch.Generator().manual_seed(42)
train_dataset, test_dataset = random_split(CN_ecg_dataset, [train_size, test_size], generator=seed)
CN_train_loader = DataLoader(train_dataset, batch_size=16, shuffle=True)
CN_test_loader = DataLoader(test_dataset, batch_size=16, shuffle=False)
In [ ]:
# 모델 및 최적화 알고리즘 설정
generator = Generator().to(device)
discriminator = Discriminator(signal_dim, noised_dim).to(device)
optimizer_G = torch.optim.Adam(generator.parameters(), lr=learning_rate)
optimizer_D = torch.optim.Adam(discriminator.parameters(), lr=learning_rate)
# 손실 함수(loss function)
criterion_GAN = nn.BCELoss(reduction='mean')
criterion_pixelwise = nn.L1Loss(reduction='mean')
In [ ]:
train(CN_train_loader)
Epoch 1/200, Pixel Loss: 0.4747440218925476, Generator Loss: 31.022550582885742, Discriminator Loss: 0.23913197219371796 Epoch 2/200, Pixel Loss: 0.2666245996952057, Generator Loss: 15.78205680847168, Discriminator Loss: 0.4809510111808777 Epoch 3/200, Pixel Loss: 0.19405366480350494, Generator Loss: 14.903812408447266, Discriminator Loss: 0.2558390498161316 Epoch 4/200, Pixel Loss: 0.14230363070964813, Generator Loss: 11.98863410949707, Discriminator Loss: 0.23683112859725952 Epoch 5/200, Pixel Loss: 0.11851176619529724, Generator Loss: 10.614662170410156, Discriminator Loss: 0.25667285919189453 Epoch 6/200, Pixel Loss: 0.1370728611946106, Generator Loss: 13.853747367858887, Discriminator Loss: 0.34179824590682983 Epoch 7/200, Pixel Loss: 0.10990997403860092, Generator Loss: 9.847068786621094, Discriminator Loss: 0.3587026000022888 Epoch 8/200, Pixel Loss: 0.10573377460241318, Generator Loss: 9.752507209777832, Discriminator Loss: 0.2876115143299103 Epoch 9/200, Pixel Loss: 0.09753002226352692, Generator Loss: 10.446518898010254, Discriminator Loss: 0.3933334946632385 Epoch 10/200, Pixel Loss: 0.10969939827919006, Generator Loss: 11.191719055175781, Discriminator Loss: 0.2902105450630188 Epoch 11/200, Pixel Loss: 0.10747623443603516, Generator Loss: 11.215826034545898, Discriminator Loss: 0.3097339868545532 Epoch 12/200, Pixel Loss: 0.09822549670934677, Generator Loss: 10.93842887878418, Discriminator Loss: 0.24403151869773865 Epoch 13/200, Pixel Loss: 0.11259868741035461, Generator Loss: 12.050930976867676, Discriminator Loss: 0.2841908633708954 Epoch 14/200, Pixel Loss: 0.11072925478219986, Generator Loss: 11.33690071105957, Discriminator Loss: 0.26943373680114746 Epoch 15/200, Pixel Loss: 0.09721643477678299, Generator Loss: 9.151446342468262, Discriminator Loss: 0.40308278799057007 Epoch 16/200, Pixel Loss: 0.09059296548366547, Generator Loss: 8.583141326904297, Discriminator Loss: 0.3741767704486847 Epoch 17/200, Pixel Loss: 0.0971246212720871, Generator Loss: 9.787002563476562, Discriminator Loss: 0.3225569725036621 Epoch 18/200, Pixel Loss: 0.0841655507683754, Generator Loss: 9.291175842285156, Discriminator Loss: 0.426993727684021 Epoch 19/200, Pixel Loss: 0.09031946957111359, Generator Loss: 9.544824600219727, Discriminator Loss: 0.3445151448249817 Epoch 20/200, Pixel Loss: 0.09264728426933289, Generator Loss: 10.413490295410156, Discriminator Loss: 0.30830132961273193 Epoch 21/200, Pixel Loss: 0.09763950854539871, Generator Loss: 11.619040489196777, Discriminator Loss: 0.34046071767807007 Epoch 22/200, Pixel Loss: 0.12090301513671875, Generator Loss: 12.027673721313477, Discriminator Loss: 0.698728621006012 Epoch 23/200, Pixel Loss: 0.09760383516550064, Generator Loss: 11.081528663635254, Discriminator Loss: 0.3329826593399048 Epoch 24/200, Pixel Loss: 0.1004972830414772, Generator Loss: 10.30009651184082, Discriminator Loss: 0.2201015204191208 Epoch 25/200, Pixel Loss: 0.10921529680490494, Generator Loss: 10.582725524902344, Discriminator Loss: 0.5985946655273438 Epoch 26/200, Pixel Loss: 0.09139551967382431, Generator Loss: 10.672637939453125, Discriminator Loss: 0.32692334055900574 Epoch 27/200, Pixel Loss: 0.10217458754777908, Generator Loss: 11.894624710083008, Discriminator Loss: 0.31074368953704834 Epoch 28/200, Pixel Loss: 0.09830063581466675, Generator Loss: 11.367616653442383, Discriminator Loss: 0.37981414794921875 Epoch 29/200, Pixel Loss: 0.09461510181427002, Generator Loss: 11.509258270263672, Discriminator Loss: 0.3465943932533264 Epoch 30/200, Pixel Loss: 0.08864941447973251, Generator Loss: 10.330923080444336, Discriminator Loss: 0.32804733514785767 Epoch 31/200, Pixel Loss: 0.11047827452421188, Generator Loss: 13.24148178100586, Discriminator Loss: 0.24800696969032288 Epoch 32/200, Pixel Loss: 0.09742576628923416, Generator Loss: 11.287513732910156, Discriminator Loss: 0.3235379457473755 Epoch 33/200, Pixel Loss: 0.10074961185455322, Generator Loss: 11.413705825805664, Discriminator Loss: 0.34737032651901245 Epoch 34/200, Pixel Loss: 0.095712810754776, Generator Loss: 11.206323623657227, Discriminator Loss: 0.347724586725235 Epoch 35/200, Pixel Loss: 0.09049027413129807, Generator Loss: 11.382564544677734, Discriminator Loss: 0.4056166708469391 Epoch 36/200, Pixel Loss: 0.09616834670305252, Generator Loss: 11.341226577758789, Discriminator Loss: 0.4301453232765198 Epoch 37/200, Pixel Loss: 0.08370218425989151, Generator Loss: 10.25462532043457, Discriminator Loss: 0.34361302852630615 Epoch 38/200, Pixel Loss: 0.09694917500019073, Generator Loss: 9.872169494628906, Discriminator Loss: 0.4885387122631073 Epoch 39/200, Pixel Loss: 0.10677364468574524, Generator Loss: 12.258674621582031, Discriminator Loss: 0.296620637178421 Epoch 40/200, Pixel Loss: 0.09777458012104034, Generator Loss: 10.216999053955078, Discriminator Loss: 0.6447756290435791 Epoch 41/200, Pixel Loss: 0.09908919781446457, Generator Loss: 10.632287979125977, Discriminator Loss: 0.2758887708187103 Epoch 42/200, Pixel Loss: 0.10056430846452713, Generator Loss: 10.375757217407227, Discriminator Loss: 0.5156914591789246 Epoch 43/200, Pixel Loss: 0.09450218081474304, Generator Loss: 10.29744815826416, Discriminator Loss: 0.2680894434452057 Epoch 44/200, Pixel Loss: 0.08948520570993423, Generator Loss: 11.225872039794922, Discriminator Loss: 0.46133509278297424 Epoch 45/200, Pixel Loss: 0.08653570711612701, Generator Loss: 9.933615684509277, Discriminator Loss: 0.3867543935775757 Epoch 46/200, Pixel Loss: 0.09119081497192383, Generator Loss: 11.907955169677734, Discriminator Loss: 0.40658092498779297 Epoch 47/200, Pixel Loss: 0.09762556105852127, Generator Loss: 10.485044479370117, Discriminator Loss: 0.34780168533325195 Epoch 48/200, Pixel Loss: 0.08940990269184113, Generator Loss: 9.921899795532227, Discriminator Loss: 0.4610334038734436 Epoch 49/200, Pixel Loss: 0.08849126845598221, Generator Loss: 10.703460693359375, Discriminator Loss: 0.43024441599845886 Epoch 50/200, Pixel Loss: 0.08798511326313019, Generator Loss: 10.869039535522461, Discriminator Loss: 0.3991044759750366 Epoch 51/200, Pixel Loss: 0.0841548964381218, Generator Loss: 9.509054183959961, Discriminator Loss: 0.4430578351020813 Epoch 52/200, Pixel Loss: 0.08177827298641205, Generator Loss: 9.52743911743164, Discriminator Loss: 0.4459361433982849 Epoch 53/200, Pixel Loss: 0.08899030834436417, Generator Loss: 10.492025375366211, Discriminator Loss: 0.36303627490997314 Epoch 54/200, Pixel Loss: 0.07985088974237442, Generator Loss: 10.93488883972168, Discriminator Loss: 0.45552489161491394 Epoch 55/200, Pixel Loss: 0.08573248982429504, Generator Loss: 9.79522705078125, Discriminator Loss: 0.4462776482105255 Epoch 56/200, Pixel Loss: 0.08876693248748779, Generator Loss: 12.32525634765625, Discriminator Loss: 0.44287604093551636 Epoch 57/200, Pixel Loss: 0.10019847750663757, Generator Loss: 12.621129989624023, Discriminator Loss: 0.3038245141506195 Epoch 58/200, Pixel Loss: 0.07944542914628983, Generator Loss: 9.80897331237793, Discriminator Loss: 0.4737566411495209 Epoch 59/200, Pixel Loss: 0.09755506366491318, Generator Loss: 12.390379905700684, Discriminator Loss: 0.3840455710887909 Epoch 60/200, Pixel Loss: 0.07892114669084549, Generator Loss: 11.338791847229004, Discriminator Loss: 0.4550325870513916 Epoch 61/200, Pixel Loss: 0.08927717804908752, Generator Loss: 11.83841323852539, Discriminator Loss: 0.3721315264701843 Epoch 62/200, Pixel Loss: 0.09731494635343552, Generator Loss: 12.008613586425781, Discriminator Loss: 0.462106317281723 Epoch 63/200, Pixel Loss: 0.08291877806186676, Generator Loss: 11.962249755859375, Discriminator Loss: 0.37627357244491577 Epoch 64/200, Pixel Loss: 0.08957713842391968, Generator Loss: 11.359752655029297, Discriminator Loss: 0.41459015011787415 Epoch 65/200, Pixel Loss: 0.09437964856624603, Generator Loss: 12.227380752563477, Discriminator Loss: 0.32273828983306885 Epoch 66/200, Pixel Loss: 0.08980512619018555, Generator Loss: 12.71037483215332, Discriminator Loss: 0.36252883076667786 Epoch 67/200, Pixel Loss: 0.09108730405569077, Generator Loss: 11.08703899383545, Discriminator Loss: 0.3032149374485016 Epoch 68/200, Pixel Loss: 0.08779855817556381, Generator Loss: 11.651992797851562, Discriminator Loss: 0.3052314817905426 Epoch 69/200, Pixel Loss: 0.08524949103593826, Generator Loss: 10.82290267944336, Discriminator Loss: 0.5365368127822876 Epoch 70/200, Pixel Loss: 0.09118907898664474, Generator Loss: 12.771327018737793, Discriminator Loss: 0.33502286672592163 Epoch 71/200, Pixel Loss: 0.09025121480226517, Generator Loss: 11.955241203308105, Discriminator Loss: 0.42953941226005554 Epoch 72/200, Pixel Loss: 0.08378042280673981, Generator Loss: 12.358733177185059, Discriminator Loss: 0.36281198263168335 Epoch 73/200, Pixel Loss: 0.08626791089773178, Generator Loss: 12.723119735717773, Discriminator Loss: 0.5114108920097351 Epoch 74/200, Pixel Loss: 0.08726640790700912, Generator Loss: 11.537769317626953, Discriminator Loss: 0.4555104672908783 Epoch 75/200, Pixel Loss: 0.07538662850856781, Generator Loss: 11.35659122467041, Discriminator Loss: 0.35716137290000916 Epoch 76/200, Pixel Loss: 0.08490769565105438, Generator Loss: 10.998489379882812, Discriminator Loss: 0.4183034896850586 Epoch 77/200, Pixel Loss: 0.08882267773151398, Generator Loss: 12.572624206542969, Discriminator Loss: 0.2732360064983368 Epoch 78/200, Pixel Loss: 0.0831640288233757, Generator Loss: 12.572553634643555, Discriminator Loss: 0.37720751762390137 Epoch 79/200, Pixel Loss: 0.08122830837965012, Generator Loss: 12.752347946166992, Discriminator Loss: 0.33797380328178406 Epoch 80/200, Pixel Loss: 0.0813705250620842, Generator Loss: 12.173897743225098, Discriminator Loss: 0.3523319363594055 Epoch 81/200, Pixel Loss: 0.08605992794036865, Generator Loss: 12.565844535827637, Discriminator Loss: 0.31044310331344604 Epoch 82/200, Pixel Loss: 0.09036542475223541, Generator Loss: 12.933181762695312, Discriminator Loss: 0.3288828730583191 Epoch 83/200, Pixel Loss: 0.08218848705291748, Generator Loss: 12.034629821777344, Discriminator Loss: 0.3109252452850342 Epoch 84/200, Pixel Loss: 0.08922874182462692, Generator Loss: 11.99417495727539, Discriminator Loss: 0.3781210780143738 Epoch 85/200, Pixel Loss: 0.08455020934343338, Generator Loss: 13.119961738586426, Discriminator Loss: 0.3849964141845703 Epoch 86/200, Pixel Loss: 0.08165548741817474, Generator Loss: 11.30174446105957, Discriminator Loss: 0.3784202039241791 Epoch 87/200, Pixel Loss: 0.0862070843577385, Generator Loss: 9.952129364013672, Discriminator Loss: 0.399505615234375 Epoch 88/200, Pixel Loss: 0.08369199931621552, Generator Loss: 11.142345428466797, Discriminator Loss: 0.3892256021499634 Epoch 89/200, Pixel Loss: 0.08886756747961044, Generator Loss: 12.81098747253418, Discriminator Loss: 0.329275906085968 Epoch 90/200, Pixel Loss: 0.09431342780590057, Generator Loss: 12.777070045471191, Discriminator Loss: 0.40607595443725586 Epoch 91/200, Pixel Loss: 0.08301691710948944, Generator Loss: 11.915268898010254, Discriminator Loss: 0.42214328050613403 Epoch 92/200, Pixel Loss: 0.08408410847187042, Generator Loss: 11.977315902709961, Discriminator Loss: 0.39364171028137207 Epoch 93/200, Pixel Loss: 0.08269764482975006, Generator Loss: 12.397123336791992, Discriminator Loss: 0.4444001317024231 Epoch 94/200, Pixel Loss: 0.08735988289117813, Generator Loss: 12.069450378417969, Discriminator Loss: 0.4130478501319885 Epoch 95/200, Pixel Loss: 0.08258582651615143, Generator Loss: 12.353033065795898, Discriminator Loss: 0.38142022490501404 Epoch 96/200, Pixel Loss: 0.08467956632375717, Generator Loss: 11.835797309875488, Discriminator Loss: 0.3707878887653351 Epoch 97/200, Pixel Loss: 0.08899138867855072, Generator Loss: 13.202007293701172, Discriminator Loss: 0.3874474763870239 Epoch 98/200, Pixel Loss: 0.08436863124370575, Generator Loss: 12.33779239654541, Discriminator Loss: 0.34164759516716003 Epoch 99/200, Pixel Loss: 0.09010878950357437, Generator Loss: 13.625373840332031, Discriminator Loss: 0.3117262125015259 Epoch 100/200, Pixel Loss: 0.08345804363489151, Generator Loss: 12.033482551574707, Discriminator Loss: 0.409290075302124 Epoch 101/200, Pixel Loss: 0.08553943783044815, Generator Loss: 13.854097366333008, Discriminator Loss: 0.4092511534690857 Epoch 102/200, Pixel Loss: 0.08665426075458527, Generator Loss: 12.065940856933594, Discriminator Loss: 0.5114415884017944 Epoch 103/200, Pixel Loss: 0.09408986568450928, Generator Loss: 13.599966049194336, Discriminator Loss: 0.26843464374542236 Epoch 104/200, Pixel Loss: 0.07850110530853271, Generator Loss: 12.157594680786133, Discriminator Loss: 0.35370299220085144 Epoch 105/200, Pixel Loss: 0.10196170210838318, Generator Loss: 14.237104415893555, Discriminator Loss: 0.3175291419029236 Epoch 106/200, Pixel Loss: 0.0848185122013092, Generator Loss: 12.852320671081543, Discriminator Loss: 0.43321454524993896 Epoch 107/200, Pixel Loss: 0.07901418954133987, Generator Loss: 10.657516479492188, Discriminator Loss: 0.36710384488105774 Epoch 108/200, Pixel Loss: 0.08158800005912781, Generator Loss: 11.993708610534668, Discriminator Loss: 0.35833367705345154 Epoch 109/200, Pixel Loss: 0.08497214317321777, Generator Loss: 12.54736328125, Discriminator Loss: 0.38497546315193176 Epoch 110/200, Pixel Loss: 0.08482156693935394, Generator Loss: 11.184852600097656, Discriminator Loss: 0.3873133659362793 Epoch 111/200, Pixel Loss: 0.0898134782910347, Generator Loss: 13.6397123336792, Discriminator Loss: 0.32590386271476746 Epoch 112/200, Pixel Loss: 0.08046599477529526, Generator Loss: 12.87381362915039, Discriminator Loss: 0.3413409888744354 Epoch 113/200, Pixel Loss: 0.0816807821393013, Generator Loss: 11.120427131652832, Discriminator Loss: 0.44660675525665283 Epoch 114/200, Pixel Loss: 0.0755784809589386, Generator Loss: 11.301904678344727, Discriminator Loss: 0.3769466280937195 Epoch 115/200, Pixel Loss: 0.08739973604679108, Generator Loss: 12.105974197387695, Discriminator Loss: 0.369417667388916 Epoch 116/200, Pixel Loss: 0.08347250521183014, Generator Loss: 12.169988632202148, Discriminator Loss: 0.4215010404586792 Epoch 117/200, Pixel Loss: 0.08699112385511398, Generator Loss: 11.01516056060791, Discriminator Loss: 0.38202863931655884 Epoch 118/200, Pixel Loss: 0.09058406949043274, Generator Loss: 12.558602333068848, Discriminator Loss: 0.45588821172714233 Epoch 119/200, Pixel Loss: 0.08921260386705399, Generator Loss: 12.666949272155762, Discriminator Loss: 0.35236120223999023 Epoch 120/200, Pixel Loss: 0.0864223763346672, Generator Loss: 13.074468612670898, Discriminator Loss: 0.35625338554382324 Epoch 121/200, Pixel Loss: 0.08918775618076324, Generator Loss: 13.45189380645752, Discriminator Loss: 0.4040464758872986 Epoch 122/200, Pixel Loss: 0.07792871445417404, Generator Loss: 12.320481300354004, Discriminator Loss: 0.3931993544101715 Epoch 123/200, Pixel Loss: 0.07879731804132462, Generator Loss: 10.671748161315918, Discriminator Loss: 0.42027974128723145 Epoch 124/200, Pixel Loss: 0.08657073974609375, Generator Loss: 12.215907096862793, Discriminator Loss: 0.34985989332199097 Epoch 125/200, Pixel Loss: 0.0912126675248146, Generator Loss: 11.23438835144043, Discriminator Loss: 0.33238720893859863 Epoch 126/200, Pixel Loss: 0.08254626393318176, Generator Loss: 11.478515625, Discriminator Loss: 0.45672866702079773 Epoch 127/200, Pixel Loss: 0.09234163910150528, Generator Loss: 12.53870964050293, Discriminator Loss: 0.3598511517047882 Epoch 128/200, Pixel Loss: 0.08060016483068466, Generator Loss: 11.748861312866211, Discriminator Loss: 0.4273023009300232 Epoch 129/200, Pixel Loss: 0.08223701268434525, Generator Loss: 11.70383071899414, Discriminator Loss: 0.34349215030670166 Epoch 130/200, Pixel Loss: 0.08122538030147552, Generator Loss: 12.366360664367676, Discriminator Loss: 0.49166160821914673 Epoch 131/200, Pixel Loss: 0.08803749829530716, Generator Loss: 11.719758987426758, Discriminator Loss: 0.33571791648864746 Epoch 132/200, Pixel Loss: 0.08318548649549484, Generator Loss: 12.274337768554688, Discriminator Loss: 0.3814619481563568 Epoch 133/200, Pixel Loss: 0.09109365195035934, Generator Loss: 14.080031394958496, Discriminator Loss: 0.2854726314544678 Epoch 134/200, Pixel Loss: 0.0946521908044815, Generator Loss: 13.927403450012207, Discriminator Loss: 0.30045658349990845 Epoch 135/200, Pixel Loss: 0.07903026044368744, Generator Loss: 12.093971252441406, Discriminator Loss: 0.44062912464141846 Epoch 136/200, Pixel Loss: 0.07308632880449295, Generator Loss: 10.417632102966309, Discriminator Loss: 0.49563416838645935 Epoch 137/200, Pixel Loss: 0.07289940863847733, Generator Loss: 10.327125549316406, Discriminator Loss: 0.5195723176002502 Epoch 138/200, Pixel Loss: 0.07809123396873474, Generator Loss: 10.832743644714355, Discriminator Loss: 0.42092931270599365 Epoch 139/200, Pixel Loss: 0.08718910068273544, Generator Loss: 11.460236549377441, Discriminator Loss: 0.3831127882003784 Epoch 140/200, Pixel Loss: 0.07584980875253677, Generator Loss: 10.447874069213867, Discriminator Loss: 0.4313584566116333 Epoch 141/200, Pixel Loss: 0.07732093334197998, Generator Loss: 11.229884147644043, Discriminator Loss: 0.4605216979980469 Epoch 142/200, Pixel Loss: 0.08261251449584961, Generator Loss: 11.602137565612793, Discriminator Loss: 0.34255027770996094 Epoch 143/200, Pixel Loss: 0.09397479891777039, Generator Loss: 13.176451683044434, Discriminator Loss: 0.29116925597190857 Epoch 144/200, Pixel Loss: 0.08180670440196991, Generator Loss: 11.04958724975586, Discriminator Loss: 0.27900171279907227 Epoch 145/200, Pixel Loss: 0.07765820622444153, Generator Loss: 12.263317108154297, Discriminator Loss: 0.34559768438339233 Epoch 146/200, Pixel Loss: 0.08194143325090408, Generator Loss: 11.625741958618164, Discriminator Loss: 0.3537141680717468 Epoch 147/200, Pixel Loss: 0.07951593399047852, Generator Loss: 10.078556060791016, Discriminator Loss: 0.47764983773231506 Epoch 148/200, Pixel Loss: 0.07645166665315628, Generator Loss: 10.96209716796875, Discriminator Loss: 0.31301796436309814 Epoch 149/200, Pixel Loss: 0.08429031819105148, Generator Loss: 12.07994270324707, Discriminator Loss: 0.2918906807899475 Epoch 150/200, Pixel Loss: 0.08556696027517319, Generator Loss: 12.35547924041748, Discriminator Loss: 0.30438074469566345 Epoch 151/200, Pixel Loss: 0.08405689895153046, Generator Loss: 12.12862491607666, Discriminator Loss: 0.2943841516971588 Epoch 152/200, Pixel Loss: 0.08400845527648926, Generator Loss: 12.909706115722656, Discriminator Loss: 0.3527364134788513 Epoch 153/200, Pixel Loss: 0.07563624531030655, Generator Loss: 12.711509704589844, Discriminator Loss: 0.5056352615356445 Epoch 154/200, Pixel Loss: 0.08060363680124283, Generator Loss: 11.855796813964844, Discriminator Loss: 0.39998552203178406 Epoch 155/200, Pixel Loss: 0.0804172083735466, Generator Loss: 11.418766021728516, Discriminator Loss: 0.38477736711502075 Epoch 156/200, Pixel Loss: 0.08361589908599854, Generator Loss: 12.087803840637207, Discriminator Loss: 0.2599566578865051 Epoch 157/200, Pixel Loss: 0.08510824292898178, Generator Loss: 12.849081039428711, Discriminator Loss: 0.1915033757686615 Epoch 158/200, Pixel Loss: 0.07334581762552261, Generator Loss: 10.126843452453613, Discriminator Loss: 0.41186219453811646 Epoch 159/200, Pixel Loss: 0.079669289290905, Generator Loss: 10.381491661071777, Discriminator Loss: 0.4668070673942566 Epoch 160/200, Pixel Loss: 0.08483634889125824, Generator Loss: 10.630620002746582, Discriminator Loss: 0.4638116955757141 Epoch 161/200, Pixel Loss: 0.08162084221839905, Generator Loss: 9.74163818359375, Discriminator Loss: 0.3599620759487152 Epoch 162/200, Pixel Loss: 0.08244185149669647, Generator Loss: 9.869051933288574, Discriminator Loss: 0.43692681193351746 Epoch 163/200, Pixel Loss: 0.08370938897132874, Generator Loss: 12.106389999389648, Discriminator Loss: 0.27849939465522766 Epoch 164/200, Pixel Loss: 0.08992338180541992, Generator Loss: 11.369993209838867, Discriminator Loss: 0.3128666877746582 Epoch 165/200, Pixel Loss: 0.08053973317146301, Generator Loss: 11.289243698120117, Discriminator Loss: 0.31684672832489014 Epoch 166/200, Pixel Loss: 0.07987372577190399, Generator Loss: 11.648780822753906, Discriminator Loss: 0.3403050899505615 Epoch 167/200, Pixel Loss: 0.07699384540319443, Generator Loss: 10.731595993041992, Discriminator Loss: 0.36686694622039795 Epoch 168/200, Pixel Loss: 0.0778072401881218, Generator Loss: 10.815272331237793, Discriminator Loss: 0.4610109031200409 Epoch 169/200, Pixel Loss: 0.07901829481124878, Generator Loss: 11.222084045410156, Discriminator Loss: 0.3888758420944214 Epoch 170/200, Pixel Loss: 0.08245833963155746, Generator Loss: 11.64522933959961, Discriminator Loss: 0.33543235063552856 Epoch 171/200, Pixel Loss: 0.07768619805574417, Generator Loss: 10.507827758789062, Discriminator Loss: 0.3164084553718567 Epoch 172/200, Pixel Loss: 0.08166120201349258, Generator Loss: 10.720149993896484, Discriminator Loss: 0.36452311277389526 Epoch 173/200, Pixel Loss: 0.07749004662036896, Generator Loss: 9.685996055603027, Discriminator Loss: 0.43922656774520874 Epoch 174/200, Pixel Loss: 0.07934629172086716, Generator Loss: 10.750873565673828, Discriminator Loss: 0.291716992855072 Epoch 175/200, Pixel Loss: 0.08021611720323563, Generator Loss: 10.77381706237793, Discriminator Loss: 0.4702799916267395 Epoch 176/200, Pixel Loss: 0.07679270952939987, Generator Loss: 11.16395092010498, Discriminator Loss: 0.3054104149341583 Epoch 177/200, Pixel Loss: 0.0763092041015625, Generator Loss: 9.313636779785156, Discriminator Loss: 0.4235605001449585 Epoch 178/200, Pixel Loss: 0.07619567960500717, Generator Loss: 11.16636848449707, Discriminator Loss: 0.36909380555152893 Epoch 179/200, Pixel Loss: 0.08336116373538971, Generator Loss: 12.554871559143066, Discriminator Loss: 0.2824118137359619 Epoch 180/200, Pixel Loss: 0.08125588297843933, Generator Loss: 10.732868194580078, Discriminator Loss: 0.3508704900741577 Epoch 181/200, Pixel Loss: 0.08502397686243057, Generator Loss: 11.598455429077148, Discriminator Loss: 0.2809312343597412 Epoch 182/200, Pixel Loss: 0.08152627944946289, Generator Loss: 11.846076965332031, Discriminator Loss: 0.366840660572052 Epoch 183/200, Pixel Loss: 0.08399337530136108, Generator Loss: 11.092729568481445, Discriminator Loss: 0.4250016510486603 Epoch 184/200, Pixel Loss: 0.07976211607456207, Generator Loss: 11.528779983520508, Discriminator Loss: 0.2028714120388031 Epoch 185/200, Pixel Loss: 0.07940841466188431, Generator Loss: 11.285375595092773, Discriminator Loss: 0.34939172863960266 Epoch 186/200, Pixel Loss: 0.08714338392019272, Generator Loss: 11.443855285644531, Discriminator Loss: 0.24958059191703796 Epoch 187/200, Pixel Loss: 0.08141861855983734, Generator Loss: 10.623647689819336, Discriminator Loss: 0.3247373402118683 Epoch 188/200, Pixel Loss: 0.07868865132331848, Generator Loss: 11.275503158569336, Discriminator Loss: 0.26645660400390625 Epoch 189/200, Pixel Loss: 0.09296173602342606, Generator Loss: 12.750076293945312, Discriminator Loss: 0.2399446964263916 Epoch 190/200, Pixel Loss: 0.07351865619421005, Generator Loss: 11.29665756225586, Discriminator Loss: 0.3486873507499695 Epoch 191/200, Pixel Loss: 0.08249965310096741, Generator Loss: 11.439834594726562, Discriminator Loss: 0.48062190413475037 Epoch 192/200, Pixel Loss: 0.07998915016651154, Generator Loss: 11.182112693786621, Discriminator Loss: 0.2183125913143158 Epoch 193/200, Pixel Loss: 0.07443997263908386, Generator Loss: 11.08725357055664, Discriminator Loss: 0.3329043388366699 Epoch 194/200, Pixel Loss: 0.08365359157323837, Generator Loss: 11.048145294189453, Discriminator Loss: 0.3797949552536011 Epoch 195/200, Pixel Loss: 0.08587892353534698, Generator Loss: 12.08578109741211, Discriminator Loss: 0.300812304019928 Epoch 196/200, Pixel Loss: 0.07447803020477295, Generator Loss: 11.379237174987793, Discriminator Loss: 0.34252864122390747 Epoch 197/200, Pixel Loss: 0.08211082220077515, Generator Loss: 12.405838012695312, Discriminator Loss: 0.3794538378715515 Epoch 198/200, Pixel Loss: 0.07875868678092957, Generator Loss: 11.136658668518066, Discriminator Loss: 0.22646522521972656 Epoch 199/200, Pixel Loss: 0.08329061418771744, Generator Loss: 13.049966812133789, Discriminator Loss: 0.32071784138679504 Epoch 200/200, Pixel Loss: 0.08016817271709442, Generator Loss: 11.243612289428711, Discriminator Loss: 0.29161590337753296
In [ ]:
evaluate(CN_test_loader)
Test set evaluation - Pixel Loss: 0.06432, Generator Loss: 9.52207, Discriminator Loss: 0.50117
In [ ]:
visualize_test_results(CN_test_loader)
In [ ]: